Les commentaires ne sont jamais substitués - le compilateur les ignore simplement, sinon #define dans la plupart des cas ne pourrait pas être utilisé avec des commentaires du tout //.
#define ONE 1//один#define TWO 2//дваint a = ONE + TWO;
приводит к int a = 1 + 2;
а не к int a = 1//один + 2 //два;
Auparavant, sur la page de profil d'une autre personne, il était possible de passer au fil d'actualité (de cet utilisateur) via un lien. Maintenant, je ne vois pas un tel lien, mais si j'ajoute /news à la fin de l'URL, cette page s'ouvre normalement. Est-ce un bug que le lien ait disparu de l'interface utilisateur ?
marketeer: Veuillez expliquer la situation suivante. J'ai un indicateur multi-devises, dont les valeurs ne changent pas en fonction du graphique auquel il est attaché - il calcule les valeurs pour les instruments spécifiés et n'est pas lié à la fenêtre actuelle. Je trace manuellement des lignes de support et de résistance sur cet indicateur. Maintenant, le truc : si je fais glisser un autre outil de l'aperçu du marché dans la fenêtre, l'apparence de l'indicateur reste la même et les lignes disparaissent. Si vous ouvrez la boîte de dialogue Liste d'objets, ces objets y sont toujours répertoriés. Les valeurs des points de terminaison (dates et valeurs) restent les mêmes (c'est-à-dire qu'elles devraient être visibles aux mêmes endroits) - c'est compréhensible, elles n'ont pas été modifiées. Cependant, les lignes ne sont pas visibles. Si vous faites ensuite glisser l'ancien outil qui se trouvait à l'origine sur la fenêtre, les lignes redeviennent visibles. Quel est le problème ?
Trouvé et corrigé.
Merci de m'avoir contacté. Il s'agit en fait d'un bug générique - cela a toujours fonctionné de cette façon auparavant.
Je dois ajouter que, par exemple, il n'y a pas d'erreur de compilation avec operator+(), et il n'y en a pas non plus si nous ajoutons simplement operator+(), qui n'est pas utilisé du tout, au premier exemple ci-dessus
class A {
public:
booloperator !() { return ( true ); }
booloperator +() { return ( true ); }
};
int g( A& a ) { return ( 10 ); }
int g( int ) { return ( 20 ); }
voidOnStart()
{
A *a = new A;
Print( !a ); //здесь считает 'a' - числом ???
Print( a.operator!() ); //здесь не считает (что правильно) 'a' - числомPrint( g( a ) ); //здесь не считает (что правильно) 'a' - числом, хотя есть g( int ) и нет g( A* )
}
Si vous n'avez pas de compte, veuillez vous inscrire
Autorisez l'utilisation de cookies pour vous connecter au site Web MQL5.com.
Veuillez activer les paramètres nécessaires dans votre navigateur, sinon vous ne pourrez pas vous connecter.
Vous êtes connecté. L'authentification à deux facteurs a été désactivée. Configurez-la à nouveau et scannez un nouveau code QR, ou continuez avec l'authentification à deux facteurs désactivée.
Erreur de compilation, build 966
la version 932 est bonnedépend du contenu du commentaire
C'est bon.
Les commentaires ne sont jamais substitués - le compilateur les ignore simplement, sinon #define dans la plupart des cas ne pourrait pas être utilisé avec des commentaires du tout //.
Dans tous les cas, remplacez // par /**/ dans https://www.mql5.com/ru/forum/1111/page1190#comment_993854.Le résultat est le même - erreur de compilation.
Veuillez expliquer la situation suivante. J'ai un indicateur multi-devises, dont les valeurs ne changent pas en fonction du graphique auquel il est attaché - il calcule les valeurs pour les instruments spécifiés et n'est pas lié à la fenêtre actuelle. Je trace manuellement des lignes de support et de résistance sur cet indicateur. Maintenant, le truc : si je fais glisser un autre outil de l'aperçu du marché dans la fenêtre, l'apparence de l'indicateur reste la même et les lignes disparaissent. Si vous ouvrez la boîte de dialogue Liste d'objets, ces objets y sont toujours répertoriés. Les valeurs des points de terminaison (dates et valeurs) restent les mêmes (c'est-à-dire qu'elles devraient être visibles aux mêmes endroits) - c'est compréhensible, elles n'ont pas été modifiées. Cependant, les lignes ne sont pas visibles. Si vous faites ensuite glisser l'ancien outil qui se trouvait à l'origine sur la fenêtre, les lignes redeviennent visibles. Quel est le problème ?
Trouvé et corrigé.
Merci de m'avoir contacté. Il s'agit en fait d'un bug générique - cela a toujours fonctionné de cette façon auparavant.
Vous ne pouvez pas appliquer l'opérateur abrégé !() - erreur de compilation
Si le compilateur comprend (et il le fait) que f4( a ) signifie que 'a' est un objet et non un pointeur/scriptor comme un nombre)
il devrait aussi comprendre que !a' signifie la même chose pour 'a' (objet, pas pointeur/numérique)
en d'autres termes, si
a1.f() et a2.f() signifient la même chose, que a1, a2 soit un pointeur ou un objet, en quoi l'opérateur !() est-il pire ?Je dois ajouter que, par exemple, il n'y a pas d'erreur de compilation avec operator+(), et il n'y en a pas non plus si nous ajoutons simplement operator+(), qui n'est pas utilisé du tout, au premier exemple ci-dessus
mais dans ce cas, une autre incertitude apparaît