Erreurs, bugs, questions - page 881

 
sergeev:
Combien en connaissez-vous ?
J'ai réussi à ajouter quelques classes supplémentaires, mais tout s'est répété. J'essaie de localiser le problème - héritage et surcharge plutôt complexes.
 
A100:
J'ai réussi à ajouter quelques classes supplémentaires, mais tout s'est répété. J'essaie de localiser le problème - héritage et surcharge plutôt complexes.
Pas de noms identiques avec les fonctions #define ?
 
sergeev:
c #define pas de noms identiques avec des fonctions ?
Les symptômes se sont produits de la manière suivante : à un moment donné, l'ajout de toute nouvellefonction virtuelle à la classe, y compris le type le plus simple
virtual bool ABC12345() const { return ( true ); }

a commencé à provoquer une erreur : ',' - token inattendu..., avec une référence à une ligne dans une autre classe - beaucoup plus tôt que l'ajout spécifié, où il n'y avait pas d'erreurs avant et où ex5 fonctionnait bien. Dans le même temps, un ajout similaire sans le mot clé virtuel n'a pas provoqué d'erreurs. Changer les noms, les paramètres - n'a eu aucun effet. J'ai ensuite essayé d'ajouter une simple classe (sans les éléments mentionnés ci-dessus).

class A {};

même erreur. Le paradoxe, mais après avoir ajouté la 7ème classe simple l'erreur a disparu. Et ce ne sont pas les noms des classes qui ont eu un effet, mais seulement leur nombre. Mais en ajoutant l'exemple avec virtual, l'erreur s'est reproduite. Depuis #define, il n'y avait que

#define PrintNotEmpty( a, b )   _PrintNotEmpty( b, a )
L'analyse a révélé qu'à l'intérieur de la fonction, en utilisant le modèle, une variable, précédemment déclarée comme static const string, a été utilisée, ce qui peut être la raison - après le remplacement par const string, l'erreur a disparu et ne se produit pas maintenant.
 

Code ajouté - la même erreur est réapparue - peut être corrigée en ajoutant une classe vide

class B {};
Apparemment, il y a un nombre critique d'entre eux
 

Dernier résultat : les conclusions précédentes ne sont pas correctes

Pour faire disparaître l'erreur - il suffit d'ajouter une ligne significative (pas un commentaire) n'importe où dans mq5, par exemple

#define XXXXXXXXXXXXX 15
Lesfonctions virtuelles dans ex5 fonctionnent bien jusqu'à présent. Le mq5 problématique a été conservé jusqu'à la prochaine révision du ME5.
 
Vous feriez mieux d'envoyer le fichier du problème au CD. Ce serait plus utile.
 
Dans un mois :) à temps pour Noël
 
sergeev:
Vous feriez mieux d'envoyer le fichier du problème au CD. Cela aurait plus de sens.
Cette erreur a déjà été détectée et corrigée.
 
mql5:
Cette erreur a déjà été détectée et corrigée.

 

Question : le délai minimal (minimum requis) entre les appels est-il documenté ?

        OrderSend( request, result );
        Sleep( n );
        bool isOK = OrderSelect( result.order );
La question porte sur le fait que lorsque n = 0 -> isOK = false, et lorsque n = 200 -> isOK = true.