Erreurs, bugs, questions - page 2831

 
Combinons tout en un seul exemple :
class B {
public:
        B( int ) {}
};
class A {
        int f( int ) { return 0; }
        void g1()    { B f = f( 1 );  } //(1) нормально
        void g2()    { B f(  f( 1 )); } //(2) Error: '1' - some operator expected
};
Maintenant, TOUT est pareil, et la question est la même : quelle est la différence entre (1) et (2)?
 
A100:
Combinons tout en un seul exemple : Maintenant, TOUT est pareil, et la question est la même : Quelle est la différence entre (1) et (2)?

Je ne sais pas du tout de quoi vous parlez, mais la différence est AMAZING )))) Affectation -> argument. Peut-être que je me trompe ))))

 
Сергей Таболин:

Je n'ai aucune idée de ce dont vous parlez, mais la différence est AMAZING )))) Affectation -> argument. Peut-être que je me trompe ))))

Si la différence est évidente pour vous, expliquez alors pourquoi il y a une erreur de compilation dans un cas et pas dans l'autre. Ou pouvez-vous faire la différence uniquement par l'apparence et non par le sens ? Alors c'est le niveau du magazine Murzilka - "trouver 10 différences".

 
A100:

Si la différence est évidente pour vous, expliquez alors pourquoi il y a une erreur de compilation dans un cas et pas dans l'autre. Ou pouvez-vous faire la différence uniquement par l'apparence, mais pas par le sens ? Alors c'est le niveau du magazine Murzilka - "trouver 10 différences".

C'est exact )))))))

Et puis-je poser une autre question de la part d'un profane ? Quel est l'intérêt de tout cela ? Quel est le but du sacrement ? Cherchez-vous ces "bugs" exprès ? Ou sans l'une de ces constructions, votre vie entière est un gaspillage ?

 
Сергей Таболин:

Et puis-je poser une autre question de la part d'un profane ? Quel est l'intérêt de tout cela ? Quel est le point sacramentel ? Recherchez-vous volontairement de tels "bugs" ? Ou sans l'une de ces constructions - la vie entière est vaine ?

Pour de telles questions (dans ce fil de discussion), il est temps d'interdire

 

Tant qu'il s'agit d'erreurs. Existe-t-il une solution à la DLL et à l'arrêt manuel du testeur?

Je veux dire, si vous arrêtez le testeur/optimisation dans le processus, alors pour recommencer, vous devez tuer metatester64 manuellement (et dans le cas d'une ferme - il y a un enfer supplémentaire), parce que le processus laisse la DLL chargée, et pour commencer un nouveau test il copie la DLL dans le bac à sable à nouveau, mais apparemment, Windows ne permet pas d'écraser la DLL ouverte et d'écrire une erreur.

Et si les développeurs passent par là, pourquoi ne pas ajouter 4 lignes au code du testeur, pour qu'il essaie de récupérer le handle de la bibliothèque, et s'il est chargé - le décharger avant de recopier ? C'est le bazar ;)

 

comment écrire l'heure locale actuelle dans un des champs de la table du testeur de stratégie en SQLite ?

Googlé

SELECT datetime('now');

Je voudrais envoyer une seule requête à la base de données.

je veux écrire les passes d'optimisation dans la base de données, le temps local me manque vraiment - j'oublie quand j'ai examiné quels paramètres d'EA

UPD :

J'ai trouvé une solution, assez de datetime() dans le champ de test pour écrire

INSERT INTO "tst"("Field1") VALUES (datetime('now','localtime'));
 
Igor Makanu:

comment écrire l'heure locale actuelle dans un des champs de la table du testeur de stratégie en SQLite ?

Googlé

Je voudrais envoyer une seule requête à la base de données.

je veux écrire les passes d'optimisation dans la base de données, le temps local me manque vraiment - j'oublie quand j'ai examiné quels paramètres d'EA

UPD :

Solution trouvée, assez de datetime() dans le champ de test pour écrire

CREATE TABLE "foo" (

   "stamp" datetime default CURRENT_TIMESTAMP,

    --- прочие поля

);

devrait fonctionner - l'horodateur sera réglé à la création de l'enregistrement à l'heure locale actuelle.

 
A100:
Combinons tout en un seul exemple : Maintenant, TOUT est pareil et la question est la même : Quelle est la différence entre (1) et (2)?

Eh bien, il est évident que le problème est très probablement le même nom que la fonction - il s'agit d'une évaluation d'apparence, pour ainsi dire, anticipant les particularités du langage))). Eh bien, ça devrait fonctionner comme ça..... imaginez trouver une telle erreur dans une tonne de code.

J'ai vérifié - oui, tout est correct. Le compilateur essaie d'appeler le constructeur à l'intérieur du constructeur et non la fonction pour la deuxième fois.

Dans le second cas, il s'avère que le compilateur, pour une raison quelconque, réserve la syntaxe "f(" - précisément comme "fonction" pour appeler le constructeur.

class B {
public:
        B( int ) {}
};
class A {
        int f( int ) { return 0; }
        void g1()    { B f = f( 1 );  } //(1) нормально
        void g2()    { B f(  this.f( 1 )); } //(2) Прекрасно работает
};


Bien que ce ne soit pas exactement le cas)))) mais...

Il est encore plus probable qu'en attendant que la parenthèse de la classe revienne à la syntaxe "f("... elle la rencontre à la fonction f(....) et la ferme en tant que classe (i.e. dans notre cas elle initialise complètement l'objet B au lieu d'appeler la fonction)... puis il résout le segment restant en essayant de convertir la classe en une variable

il semble que votre code essaie de comprendre comment


class B {
public:
        B( int ) {}
};
class A {
        int f( int ) { return 0; }
        void g1()    { B f = f( 1 );  } //(1) нормально
        void g2()    { B a(1);  B f (a(1)); } //(2) Error: '1' - some operator expected
};
Быстрое погружение в MQL5
Быстрое погружение в MQL5
  • www.mql5.com
Есть множество причин, по которым вы решили изучать современный язык программирования торговых стратегий MQL5, и мы только приветствуем это! Старожилы легко ориентируются как в самой документации по языку, так и в статьях и множестве сервисов, которые здесь представлены. Но если вы только открыли для себя клиентский терминал MetaTrader 5, то в...
 

Une sorte d'avertissement inutile

//Test.mqh
void f(); //Warning: no #import declaration
//Test.mq5
#include "Test.mqh"
void f() {}
Cela n'aide pas, mais plutôt entrave, car il y a tellement de

.

Cela dit :

//Test.mq5
void f(); //нормально
void f() {}

est bien. Quelle est la différence fondamentale ?