Erreurs, bugs, questions - page 2328
Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
J'ai proposé la variante la plus simple qui pourrait être mise en œuvre demain (pas dans 10 ans) et qui serait similaire au C++ (sinon pourquoi changer quoi que ce soit). De plus, si operator*() n'est pas et ne sera pas implémenté (il y avait des informations à ce sujet sur le forum), on ne voit pas pourquoi operator->() serait soudainement implémenté (ils sont du même ordre).
Elle n'est pas nécessaire sous cette forme demain ou dans 10 ans. Et vous n'avez pas besoin de similitude externe, vous avez besoin de fonctionnalités.
Porter au moins partiellement la STL du C++. Ce n'est pas seulement l'opérateur-> qui est en jeu ici, nous avons besoin de beaucoup plus.
operator-> serait le premier pas vers les pointeurs intelligents.
En fait, tout ne va pas bien avec le casting implicite tel qu'il est actuellement.
Vous pouvez voir que la distribution dynamique est incluse dans la distribution implicite.
MAIS
Tout d'abord, nous ne savons pas pourquoi il est inclus alors que le dynamic cast est explicitement présent dans le langage.
deuxièmement, il est très mal inclus car l'erreur de cast dynamique dans le cas d'une fonction peut être contrôlée (sortie d'un mauvais pointeur) mais le cast implicite ne peut pas l'être ! car il lève une exception incontrôlable.
2018.11.23 20:31:47.348 test (AUDNZD,M5) casting incorrect des pointeurs dans 'test.mq5' (17,11)
Il n'a aucun effet.
Vous devez soit donner un pointeur invalide comme fonction, soit exclure le cast dynamique du cast implicite et donner une erreur de compilation.
Oui, avec ce problème, travailler avec la POO est mal contrôlé et peu fiable. Quelque part, vous changez le type à un endroit du programme, et ensuite il explose à je ne sais où. Dans ces exemples, vous pouvez en quelque sorte vous en sortir en utilisant des béquilles, parce qu'il y a une simple affectation de pointeur, et tout est devant vous. Mais en général, quand un pointeur est passé à une fonction et qu'il est dynamiquement converti en quelque chose d'inconnu, vous n'avez aucun moyen de le contrôler.
Un point est un opérateur universel dans MQL.
Cela dépend de la façon dont on voit les choses. On peut dire qu'il est universel : il fonctionne aussi bien avec les objets qu'avec les pointeurs.
Ou vous pouvez dire que . ne fonctionne qu'avec des objets, et il ne fonctionne avec des pointeurs que dans la mesure où le pointeur est implicitement converti en objet, c'est-à-dire dans le cas de
entrée
est équivalent à ne pas
a
il y a cette structure
il y a une variable OrdersInfo order, quand j'essaie de l'écrire dans un fichier
le compilateur donne : 'order' - les structures contenant des objets ne sont pas autorisées
Quel pourrait être le problème ?
il y a cette structure
il y a une variable OrdersInfo order, quand j'essaie de l'écrire dans un fichier
le compilateur donne : 'order' - les structures contenant des objets ne sont pas autorisées
Quel pourrait être le problème ?
Ici
https://www.mql5.com/ru/docs/files/filewritestruct
énumère les restrictions.
MT4 sur le trafic UPU est négatif, le compteur d'historique téléchargé a commencé à augmenter ...