OOP, templates et macros dans mql5, subtilités et utilisations - page 4

 
Alexey Navoykov:
Je l'ai déjà fait - et je ne le regrette pas du tout ) Mais vous, je vois, prenez un grand plaisir à vous contraindre avec les restrictions artificielles imposées par MQ. Peut-être êtes-vous masochiste ? ) Vous insistez tellement pour me convaincre que c'est nécessaire. Ce n'est pas nécessaire, c'est forcé - c'est le but.

Tu ressembles plus à un masochiste. Au lieu de suivre les règles de la langue, vous avez passé votre temps à écrire une béquille dont personne n'a besoin, en essayant de faire passer votre opinion pour un axiome, malgré le fait que je ne suis pas le seul à vous parler de vos erreurs. Et en plus de cela, vous essayez de faire passer votre métier pour des subtilités et des astuces. Et les subtilités et fonctionnalités s'avèrent être le respect des règles décrites dans la documentation.

Adressez-vous aux développeurs des variétés du langage C. Écoutez l'adresse du lien où vous serez envoyé. Et vous pensez qu'il est acceptable d'exiger quelque chose des développeurs en échange de votre propre ignorance.

 
Alexey Viktorov:

Tu ressembles plus à un masochiste. Au lieu de suivre les règles de la langue, vous avez passé votre temps à écrire une béquille dont personne ne veut.

Une demi-journée, passée à écrire une béquille, sera remboursée par le temps et les cellules nerveuses économisés, plus la commodité du code (je l'écris comme j'en ai besoin).

en essayant de faire passer votre opinion pour une axiomatique, malgré le fait que je ne suis pas le seul à vous parler de vos erreurs.

...

Adressez-vous aux développeurs de langages C.

Des erreurs ? Avez-vous déjà programmé dans un vrai langage de programmation ? Je ne pense pas. Si vous ne le savez pas, MQL est écrit de manière similaire à C++. Dans ce cas, les développeurs ont fait une erreur, n'ont pas pris en compte certains détails et ont créé un bug qui ne peut être trouvé dans les langages de programmation normaux.

Et ici, vous considérez qu'il est acceptable d'exiger quelque chose des développeurs au lieu de votre propre ignorance.

Vous êtes à nouveau confus. Je ne demande plus rien.
 
Alexey Navoykov:

Passer une demi-journée à écrire une béquille me rapportera dans le futur beaucoup de temps et de cellules nerveuses économisés, plus la commodité du code (je l'écris comme je le veux).

Des erreurs ? Avez-vous déjà programmé dans un vrai langage de programmation ? Je ne pense pas. Si vous ne le savez pas, MQL est écrit de manière similaire à C++. Dans ce cas, les développeurs ont fait une erreur, n'ont pas pris en compte certains détails et ont créé un bug qui ne peut être trouvé dans les langages de programmation normaux.

Vous êtes à nouveau confus. Je ne demande rien.

Pourquoi les développeurs mql devraient-ils imiter qui que ce soit ?

 
Alexey Viktorov:

Pourquoi diable les développeurs de mql voudraient-ils imiter qui que ce soit ?

Regardez la documentation, elle dit tout noir sur blanc.
 
Alexey Viktorov:

Adressez-vous aux développeurs des variantes du langage C. Écoutez l'adresse du lien vers lequel vous serez envoyé. Et vous pensez qu'il est acceptable d'exiger quelque chose des développeurs en échange de votre propre ignorance.

Quel est le rapport avec la famille des langages C ? C'est seulement en µl. C'est parce que mk a décidé de faire une compilation multi-pass pour satisfaire ceux qui le veulent.

void start() {
    int i = f();
}
int f() {return 0;}

Ce que tu n'aurais pas dû faire.

ZS :

En général, j'ai entendu ici plus d'une fois que c++ est une balle dans le pied, 70% n'y est pas du tout utilisé, on va faire une mcl pratique et sûre. Mais il semble plutôt que nous devions réinventer ce c++ "tordu" pour un codage confortable :)

 
Alexey Navoykov:

Vous prônez donc l'utilisation massive de variables globales, si je comprends bien. Alors vous et moi avons peu de chances de nous comprendre.

En outre, la fonction elle-même peut être un modèle. et l'instance créée, respectivement, doivent être paramétrées par le même type :

Votre action ?

Non pas que je sois un partisan, mais je ne vois pas ce qu'il y a de mal à déclarer une instance d'une classe une fois pour toutes, même si ce n'est pas nécessaire pour autre chose que la facilité d'utilisation des variables statiques. Et quand dernièrement j'ai moi-même été confronté à ce bogue avec les statiques à l'intérieur des fonctions, j'ai simplement décidé de ne jamais les déclarer comme ça (à l'intérieur des fonctions) et il n'y a plus de problèmes du tout.

 
pavlick_:

C'est parce que mc a décidé de faire une compilation en plusieurs passes pour le bénéfice de ceux qui veulent faire

ce qu'ils n'auraient pas dû faire.

J'ai peur qu'il ne comprenne pas ce que tu veux dire.)
 
pavlick_:

Qu'est-ce que la famille du langage C a à voir là-dedans ? Seul µl a ce genre de choses. C'est parce que µ a décidé de faire une compilation multi-pass pour ceux qui le veulent.

Ce que tu n'aurais pas dû faire.

ZS :

En général, j'ai entendu ici plus d'une fois que le c++ est une balle dans le pied, 70% n'y est pas du tout utilisé, on va faire un µl pratique et sûr. Mais il semble plutôt que nous devions réinventer ce c++ "tordu" pour un codage confortable :)

Donc vous dites que vous ne pouvez pas initialiser une variable avec une fonction ? Est-ce que je comprends bien ?

 
Ilya Malev:

Non pas que je sois un partisan, mais je ne vois pas ce qu'il y a de mal à déclarer une instance d'une classe immédiatement après sa description, même si cela n'est nécessaire pour rien, si ce n'est une utilisation pratique des variables statiques. Et lorsque récemment j'ai moi-même été confronté à ce bogue avec les statiques à l'intérieur des fonctions, j'ai simplement décidé de ne jamais les déclarer de cette façon (à l'intérieur des fonctions) et il n'y a plus de problèmes du tout.

Eh bien, c'est ce dont j'ai commencé à parler ici. J'avais l'intention de remplacer toutes les statiques par des globales aussi (bien que ce soit difficile, bien sûr). Mais comme montré ci-dessus, cela ne fonctionnera pas avec les templates. Avec les macros aussi. Et j'utilise tout cela largement, donc j'ai fait mon implémentation. Bien qu'elle ne résolve pas tous les problèmes. Les tableaux dynamiques ne peuvent toujours pas être initialisés, les types constants aussi, donc ils doivent sans ambiguïté être globalisés.
 
Alexey Viktorov:

Vous dites donc qu'on ne peut pas initialiser une variable avec une fonction ? Est-ce que je comprends bien ?

Non, ce n'est pas ce que je dis. En plus statique, un membre de fonction sera initialisé la première fois qu'il entre dans la fonction. A propos du multi-passing - j'étais pressé, je pensais naïvement que µl le permettait

int q = w;
int w;