![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Aux compilateurs, une suggestion.
S'il vous plaît, faites le transfert de petites structures par valeur, pas seulement par référence, car toute arithmétique complexe/rationnelle est terriblement lente.
Veuillez expliquer comment le passage par référence au lieu de la transmission de valeur de structure peut ralentir ? Et surtout avec un exemple.
Dès que nous autorisons le passage des structures par la valeur, le véritable freinage commence. Les développeurs utiliseront partout, sans le savoir, le passage d'énormes structures par la pile et leurs programmes seront ralentis.
L'héritage multiple est définitivement un mal.
Ы ? Comment hériter de deux interfaces ?
Je suis tout à fait favorable à la fusion avec les dièses plutôt qu'avec les plus. Cela a beaucoup plus de sens, étant donné les générations d'expérience.
Une demande aux compilateurs.
S'il vous plaît, faites le transfert de petites structures par valeur, et pas seulement par référence. Sinon, toute arithmétique complexe/rationnelle est terriblement lente.
Il suffit de fixer une limite (à votre discrétion - 32 ou 64 octets) au-delà de laquelle le compilateur ne prend pas en compte les structures passées par valeur et exige strictement le passage par référence.
Il serait également très agréable de pouvoir renvoyer de petites structures comme résultat d'une fonction.
--
Je vote même pour la surcharge de l'opérateur. J'espère que j'y arriverai un jour. Il semble que le cours "to merge with C++" soit suivi et généralement soutenu.
La syntaxe fonctionnelle pour les opérations arithmétiques avec des objets mathématiques non standard est très peu pratique, et ralentit également beaucoup,
car elle ne peut pas être remplacée par des substitutions en ligne et nécessite la dépense d'appels de fonction.
Non. Structures par référence seulement. Aucune exception. Donnez-nous quelques chiffres pour les freins afin que nous puissions estimer l'ampleur de la catastrophe.
Auparavant, nous avions la possibilité de retourner des structures en tant que résultat de fonction, mais nous avons fini par annuler cette option en raison de l'ambiguïté de l'implémentation (notre débogage interne). Nous avons décidé que puisque les structures sont passées par référence, il faut passer la structure résultante comme paramètre.
La surcharge des opérateurs est possible. Mais pas maintenant.
Développeurs : veuillez faire fonctionner OnTimer() dans les indicateurs qui ne sont pas attachés au graphique.
1. non. structures uniquement par référence. Aucune exception. Pour les freins, donnez des chiffres, afin que nous puissions estimer l'ampleur de la catastrophe.
Nous avions l'option de retourner des structures en tant que résultat de la fonction. Finalement, nous avons annulé cette option en raison de l'ambiguïté de la mise en œuvre (nos querelles internes). Nous avons décidé que puisque les structures sont passées par référence, il faut passer la structure résultante comme paramètre.
3. la surcharge des opérateurs est possible. Mais pas maintenant.
1. :) Catastrophe est annulé. Je l'ai mesuré et j'ai été très surpris, les freins ne sont pas dedans (le script est dans la bande annonce). Je vais chercher moi-même et optimiser. Mais dans de nombreux cas, la syntaxe est plus pratique, lorsque vous pouvez substituer des expressions dans les paramètres. Ouais. Eh bien, je peux vivre avec ça. C'est supportable. L'essentiel est qu'il ne ralentisse pas.
Mais pouvons-nous réassigner les structures ? L'assignation des structures est parfaitement légale, alors autorisons-la aussi. Le programme est beaucoup plus lisible lorsque l'assignation du résultat de l'exécution de la fonction est syntaxiquement unifiée :
Y = Func(X) ; - cela semble beaucoup plus clair en lisant brièvement le code que Func(X, Y) ; // vous devriez deviner que Y est un paramètre de sortie.
Non, Straustrup n'aimerait pas votre solution... ce n'est pas juste d'une certaine manière... :)
3. Oh ! C'est bien. Merci pour cela.
Pouvons-nous aussi réassigner des structures légalement, alors autorisons aussi la réassignation. Le programme est beaucoup plus lisible lorsque l'assignation du résultat d'une fonction est syntaxiquement unifiée :
Je vais vous dire un secret. Fais-le.
Il s'avère qu'ils ne l'ont pas coupé. Vous pouvez renvoyer des structures simples. Mais n'oubliez pas que dans ce cas, vous devrez ajouter deux copies supplémentaires - la copie dans la structure de tempo sur la pile et la copie de la structure de tempo dans la structure de résultat.
Pourquoi la classe CExpert de la bibliothèque standard est-elle déclarée comme ceci dans la documentation,
et dans le fichier Expert.mqh on voit cette déclaration ?
Développeurs : faites en sorte que OnTimer() fonctionne dans les indicateurs qui ne sont pas attachés au graphique.