Discussion de l'article "Les bases de la programmation MQL5 : Listes" - page 9

 
C-4:
Par "mise en œuvre normale", vous entendez peut-être la mise en œuvre des modèles.
Qu'est-ce que c'est ? Qu'entendez-vous par "sur les modèles" ? Une façon particulière d'appuyer sur les touches avec les doigts pendant la programmation ?
 
Integer:
A quoi cela ressemble-t-il ? Qu'entendez-vous par motifs ? Une façon particulière et tordue d'appuyer sur les touches avec les doigts pendant la programmation ?

Les modèles, hérités de l'ancienne méthode de substitution des macros à la compilation, ont en fait perdu depuis longtemps leur pertinence pour la programmation orientée objet.

Dans les langages modernes, ces tâches sont résolues par des outils d'exécution, par exemple, les génériques en C#, la reconnaissance dynamique des types RTTI et l'utilisation de types variants.
Il y a bien sûr encore des vieux briscards qui aiment les modèles, mais IMHO, en tant que programmeur, c'est un signe qu'il est temps de prendre sa retraite.

 
revers45:

Les modèles, hérités de la méthode archaïque de substitution des macros à la compilation, ont en fait perdu depuis longtemps leur pertinence pour la programmation orientée objet.

Dans les langages modernes, ces tâches sont résolues par des outils d'exécution, par exemple, les génériques en C#, la reconnaissance dynamique des types RTTI et l'application de variantes de types.
Bien sûr, il y a encore des vieux briscards qui aiment les modèles, mais en tant que programmeur, c'est un signe qu'il est temps de prendre sa retraite.

Il est amusant de lire que les modèles se sont depuis longtemps éloignés des substitutions de macros et qu'ils existent avec succès en tant que paradigme séparé.

Les génériques en C# sont juste des modèles très réduits et, en fait, pas au moment de l'exécution mais au moment de la compilation, ce qui fait que leur vitesse est plus élevée).

Mais le RTTI et les types variants suggèrent de mauvaises pensées....

____________________

D'accord, tout cela est très bien, bien sûr. Mais dans MQL5, il n'y a que des fonctions template, il n'y a pas de classes (y en aura-t-il ?). Ainsi, les listes sur les modèles ne sont pas réalisables avec les outils actuels.

 
TheXpert:

Il est amusant de lire que les modèles se sont depuis longtemps éloignés des substitutions de macros et qu'ils existent avec succès en tant que paradigme distinct.

Les génériques en C# ne sont que des modèles très réduits, et en général, ce n'est pas le temps d'exécution, mais le temps de compilation, qui fait que la vitesse de leur utilisation est plus élevée ).

Mais le RTTI et les types de variantes suggèrent de mauvaises pensées....

____________________

D'accord, tout cela est très bien, bien sûr. Mais dans MQL5, il n'y a que des fonctions de modèle, il n'y a pas de classes (y en aura-t-il ?). Ainsi, les listes sur les modèles ne sont pas réalisables avec les outils actuels.

Vous êtes heureux parce que les paradigmes fossiles sont vos souvenirs chaleureux du siècle dernier et semblent constituer un bagage de connaissances exhaustif.

Mais il n'est pas nécessaire d'éclipser les approches modernes pour cette raison, car les MQ supposeront que leurs clients sont nostalgiques de leur grand-père Macro Assembler et ANSI C et ignoreront les suggestions d'amélioration de MQL5.
.

 
revers45, un peu faux, j'ai finalement compris de quoi je parlais. Il existe une possibilité d'écrire des fonctions universelles pour assurer la surcharge. On n'écrit pas une fonction pour chaque type d'arguments, on écrit un modèle de fonction. Les personnes ci-dessus ont mal compris quelque chose, nous n'avons que des modèles de fonction ici. Mais la conversation a commencé avec quels types de connaisseurs, mais la question sur les modèles a été posée, donc le silence s'est fait immédiatement. Ils semblent être des bavards intelligents, c'est tout.
 

Puisqu'il n'y a pas de modèles, vous pouvez le faire avec des macros, quelqu'un je crois a même écrit un article sur ce sujet (macros au lieu de modèles) + analogie des algorithmes en stl également avec des macros. Mais je pense que tout cela devrait être dans la bibliothèque standard sur les modèles, c'est une erreur d'écrire ses propres conteneurs (utile seulement à des fins éducatives), c'est plus facile à faire avec un tableau.

Mise à jour : pas besoin d'algorithmes sur les macros, les modèles de fonctions sont disponibles. Je n'aime pas l'insertion virtuelle/... il est préférable d'utiliser des assertions de vérification de type en mode débogage.

 
J'ai téléchargé la pièce jointe et j'ai trouvé à plusieurs endroits des erreurs de compilation telles que : 'm_head' - member of the constant object cannot be modified CiSingleList.mqh 504 & nbsp ; 9
 
C'est un bon article et je pense qu'il a été écrit pour tout le monde dans la communauté Mql5 parce que tout est clairement expliqué.
 
Je dois dire que cet article donne un aperçu clair de la POO. Je suis ému de voir qu'après avoir lu cet article, j'ai beaucoup appris, je tire ma révérence.
 

Bonjour,

J'ai essayé de compiler test_MQL5_List.mq5 , j'ai obtenu les erreurs suivantes :

'm_head' - membre de l'objet constant ne peut être modifié CiSingleList.mqh 504 9
'm_tail' - membre de l'objet constant ne peut être modifié CiSingleList.mqh 505 9
'm_size' - membre de l'objet constant ne peut être modifié CiSingleList.mqh 496 9