Questions sur la POO dans MQL5 - page 47

 
Igor Makanu:

Les développeurs de MT écrivent toujours que l'utilisation des mécanismes intégrés du compilateur sera plus rapide que l'appel de fonctions régulières.

Si vous avez le temps et l'intérêt, vérifiez la vitesse de ma version et de la vôtre avec ArrayCopy

Je vérifierai la vitesse un peu plus tard, je suis occupé avec mes leçons de PC en ce moment.

Je me suis trompé sur ArrayCopy, parce que vous avez un tableau de tableaux, il ne copiera pas. Vous devez le copier élément par élément, donc oui, votre méthode est optimale.
 
Alexey Navoykov:
J'ai exagéré à propos de ArrayCopy, vous avez un tableau de tableaux, il ne se copie pas. Vous devez les copier élément par élément. Donc, oui, votre méthode est meilleure.

Ouf... au moins quelque chose s'est éclairci ))))


Bien qu'il y ait une opinion commune selon laquelle MQL est un langage similaire au C, mais à mon avis, il est plus proche de Sharp que de Plus.

J'ai copié presque 99% du code dans MQL. C'est un travail de 5-10 minutes.

ZS : Je le ferais bien, mais je crois que j'ai ce code sur mon ordinateur portable - je ne m'en souviens pas, je dois le chercher, et à la maison je n'ai pas de puissance de calcul ... c'est le bordel en général ))))

 
Igor Makanu:

Ouf... au moins quelque chose s'est éclairci ))))


Bien qu'il y ait une opinion commune selon laquelle MQL est un langage similaire au C, mais à mon avis, il est plus proche de Sharp que de Plus.

J'ai copié presque 99% du code dans MQL. C'est un travail de 5-10 minutes.

ZS : Je le ferais bien, mais je crois que j'ai ce code sur mon ordinateur portable - je ne m'en souviens pas, je dois le chercher, et à la maison je n'ai pas de puissance de calcul ... c'est le bazar en général ))))

Il est aussi loin des pros que la lune et aussi loin de Sharp que l'orbite de Pluton. En général, l'impression générale est que tout est fait à l'image de WinApi. Et oui, les plus sont toujours la base.

 
Vladimir Simakov:

Il est aussi proche des plus que de la lune, et Sharpe est aussi proche de l'orbite de Pluton. En général, l'impression est que tout est fait dans l'image de WinApi. Et oui, les plus sont toujours la base.

Il y a beaucoup de choses à débattre, mais vous avez déjà traité les problèmes de portage STL, n'est-ce pas ?

pour accélérer le processus d'argumentation.... Supprimez la STL et la gestion des pointeurs, et vous n'obtiendrez PAS de capacités MQL en sortie.

mais si vous appliquez le même principe au C#, alors ce qui reste de Sharp pourrait ressembler à MQL dans ses possibilités.

;)

 
Igor Makanu:

Il y a beaucoup de choses à débattre, mais vous avez déjà traité les problèmes de portage STL, n'est-ce pas ?

pour accélérer le processus d'argumentation.... Enlevez STL, puis le travail avec les pointeurs et vous n'obtiendrez PAS de capacités MQL en sortie.

mais si vous appliquez le même principe au C#, alors ce qui reste de Sharp pourrait ressembler à MQL dans ses possibilités.

;)

Si vous supprimez les pointeurs du C, vous n'aurez plus de C non plus, alors que stl n'est qu'une bibliothèque)))).

Et que suggérez-vous de retirer de Sharpe, des objets ?) Cela aura le même effet.

D'ailleurs, les modèles dans mql sont toujours des modèles de C, pas des génériques de C# (au moment de la compilation). Et il n'y a pas de macros dans Sharp).

 
Vladimir Simakov:

Si vous supprimez les pointeurs du C, il n'y aura plus de C, et stl n'est qu'une bibliothèque).

Et que suggérez-vous que nous supprimions de Sharp, les objets ?) Cela aura le même effet.

À propos, les modèles dans mql sont toujours des modèles de C, et non des génériques de C# (au moment de la compilation). Et il n'y a pas de macros dans Sharpe).

Je ne pense pas que cela vaille la peine de perdre du temps et des efforts à discuter avecIgor Makanu,
Cet homme essaie d'argumenter sur les questions nobles du niveau supérieur sans comprendre lesquestions triviales du niveau stagiaire.


 
Igor Makanu:

Il y a beaucoup de choses à débattre, mais vous avez déjà traité les problèmes de portage STL, n'est-ce pas ?

pour accélérer le processus d'argumentation.... Supprimez la STL et la gestion des pointeurs, et vous n'obtiendrez PAS de capacités MQL en sortie.

mais si vous appliquez le même principe au C#, alors ce qui reste de Sharp pourrait ressembler à MQL dans ses possibilités.

;)

STL est juste une bibliothèque. L'utiliser ou ne pas l'utiliser n'influence pas les possibilités de la langue, elles seront de 2 têtes supérieures à MQL comme avant.

Et Sharp n'est similaire à MQL que pour les tableaux. Pour le reste, MQL rappelle C++, peut-être de 1999 ou avant.

 
Sergey Dzyublik:

Je ne pense pas avoir besoin de perdre mon temps et mon énergie à discuter avecIgor Makanu,
Une personne essaie d'argumenter sur des sujets de haut niveau sans comprendre lesquestions triviales de niveau stagiaire.

Ne discutez pas, ne perdez pas votre temps, ce n'est pas comme si j'avais écrit dans leSergey Dzyublik- reply ! ;)

Avez-vous vu le titre du sujet ? - Mes questions correspondent à ce fil de discussion ? - Eh bien, personne ne m'a assigné la tâche de faire plaisir à votre Ego aujourd'hui)))).

Vladimir Simakov:

Si vous retirez les pointeurs du C, vous n'aurez plus de C du tout, alors que stl n'est qu'une bibliothèque)))).

Je le comprends, mais les langages de haut niveau sont intéressants avec des solutions toutes faites, sinon nous serions occupés à écrire printf() pendant une demi-journée maintenant))).

Alexey Navoykov:

Et Sharp n'est similaire à MQL que pour les tableaux. Pour le reste, MQL rappelle C++, peut-être de 1999 ou avant.

Vous êtes peut-être dans le vrai.

 
Igor Makanu:

Il y a beaucoup de choses à débattre, mais vous avez déjà rencontré des problèmes avec le portage STL, n'est-ce pas ?

Les principaux problèmes que j'ai rencontrés lors du portage de std::vector de C++ à MQL :
1) lesbugs(et pas tous ici non plus).
2) Les fonctions standard ne fonctionnent correctement que pour certains types de données (je dois écrire manuellement des ArrayCopy, ArrayFill universels avec le support de la compilation conditionnelle, en fonction du type, pour une vitesse maximale) ;
3) Les fonctions standard fonctionnent assez lentement pour certains types de données (vous devez prescrire manuellement ArrayResize pour un Resize+Reserve rapide pour les types de données simples) ;
4) Et seulement le quatrième manque de fonctionnalité - manque de "déclaration typedef" (il est contourné par #define, l'héritage des classes et des structures, l'utilisation de classes wrapper pour les types simples).


 
La chose principale est qu'il est censé être d'un niveau plus élevé que le C++, et que le code devrait être plus simple et plus laconique. Mais en fait, c'est l'inverse. Le code dans MQL est beaucoup plus lourd et maladroit. Vous devez concasser beaucoup de choses.