Erreurs, bugs, questions - page 2675
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
Bug MT5 (build 2340) Erreur de compilation lors de la tentative d'accès à la classe interne pour un paramètre de modèle d'une fonction de modèle.
Merci pour le post, corrigé
Dans quel encodage se trouve le fichier ?
En UTF-8 standard
J'ai essayé de différentes manières, avec différents encodages et différents délimiteurs.
Le résultat est soit 5008, soit des hiéroglyphes.
Deux questions immédiatement pour le compilateur MT5 (build 2321) :
1. Les priorités d'exécution des fonctions modèles en MQL ne correspondent pas à celles des fonctions modèles en C++ (en ligne : https://onlinegdb.com/Hkvz8Hu7L).
Ainsi, en C++, lorsque les trois fonctions de modèle sont présentes, la fonction de modèle dont le résultat est "C++:1" est exécutée, si elle est supprimée, "C++:2" est exécutée, et si elle est supprimée, "C++:3" est exécutée.
Les priorités dans MQL sont très différentes : "C++:2" suivi de "C++:1" et "C++:3".
Il n'est pas clair pourquoi la première des fonctions est interdite dans MQL, alors que la fonction identique avec un paramètre fictif est déjà autorisée :
Merci pour le message, corrigé
En UTF-8 standard
J'ai essayé de différentes manières, avec différents encodages et différents délimiteurs.
Le résultat est soit 5008, soit des hiéroglyphes.
Veuillez fournir un code de travail avec un fichier à examiner.
Sur le travail du site :
L'affichage du solde de mon compte personnel est un peu erroné, si vous pouvez le corriger, il y a beaucoup de zéros.
Veuillez fournir un code de travail avec un fichier à examiner.
En C++, il compile et fonctionne (en ligne : https://onlinegdb.com/Syn90dd7I), mais en MQL l'erreur : "'func' - appel ambigu à une fonction surchargée".
Merci pour le post, corrigé
En UTF-8 standard
J'ai essayé de différentes manières, avec différents encodages et différents délimiteurs.
Le résultat est soit 5008, soit des hiéroglyphes.
L'encodage est ANSI, il ne fonctionnera que dans un Windows russe.
Ajout du drapeau FILE_ANSI, lors de l'ouverture d'un fichier
Bogue MT5 (build 2340) lorsqu'une structure interne est transmise à une fonction de modèle, le type de données résultant ne peut pas être utilisé comme type de données de base pour une autre structure interne dans une classe de modèle :
MT5 (build 2347) Pourquoi une si grande surcharge lors de l'ajout d'un élément à la fois à un tableau en utilisant ArrayResize, si la mémoire a été réservée pour eux à l'avance ?
Veuillez envisager d'améliorer l'algorithme de réservation interne avec ArrayResize.
Par exemple, pour les classes, nous pouvons supposer qu'elles effectuent une sorte d'"enregistrement interne dans des listes" en plus d'appeler le constructeur.
Et dans le cadre de la réservation avec ArrayResize, outre l'allocation directe de mémoire, vous pouvez essayer d'optimiser le processus :
- prendre des données de l'élément créé adjacent (par exemple, un pointeur vers une table de fonctions virtuelles) ;
- pré-exécuter ou réserver un espace pour "l'inscription interne" de classes qui n'ont pas encore été créées ;
Merci pour le message.
Le code ArrayResize est protégé contre l'appel à vide (lorsqu'il n'y a pas de changement dans le nombre d'éléments), donc le code de la fonction ne fonctionne pas.
Alors qu'un changement réel du nombre d'éléments déclenche l'une ou l'autre partie de la fonction ArrayResize, en fonction du tableau.
Grâce au code que vous avez présenté, j'ai pu réduire à zéro la complexité d'une partie d'ArrayResize, ce qui accélérera la fonction pour les tableaux d'objets.