Vim comme idéal pour mql - page 7

 
Maxim Kuznetsov:

Si j'ai bien compris, nous devons toujours utiliser des protections et il y a des exigences de code spéciales ?

Dans nos propres fichiers d'en-tête, oui, nous avons besoin de gardes. Nous parcourons d'abord le tuyau, il fait un grand désordre de tous les crochets et cela va au compilateur µl. Sans gardes, les définitions seront répétées et le compilateur µl générera des erreurs.

A partir des exigences du code, oui un seul en principe - nous emballons les directives μl spécifiques du préprocesseur comme ceci.

#ifndef  VIM
mqlcpp_#import  jkjkjk.dll
#endif
void fn_from_jkjkjk_dll();

Pour que clang ne bute pas sur cette importation lors de l'analyse et de la compilation. Si mql est une construction spécifique, mais pas une directive au préprocesseur, alors sans mqlcpp_ (vous n'êtes pas obligé, mais du point de vue de clang c'est une sorte d'erreur).

#ifndef  VIM
input int            MA_Period=13; // Ну или INPUT макрос
input int            MA_Shift=0;
#else
int            MA_Period=13;
int            MA_Shift=0;
#endif

Le choix de déréférencer les pointeurs avec -> et de mettre & devant les tableaux est libre, mais suivre le style C++ donnera un meilleur support de clang.

HH : au fait, je ne vous ai pas dit comment est définie la "première compilation" dans le contexte de l'ajout de gardes. Regardez Include/Object.mqh et si nous n'y trouvons pas de garde, alors compilez d'abord. J'aimerais également ajouter la possibilité de créer une liste noire pour les voleurs stupides.
 
Vict:

...

En général, vos questions sont fausses, plus intéressantes - j'ai fait un idéal en quelques jours sur mes genoux avec tous les goodies et une qualité bien supérieure à celle du méta-éditeur...

Oui... Avec de telles capacités, il est facile d'écrire un système d'exploitation en une semaine). Parfois, j'aime embellir, mais à ce point...)

Peut-être est-ce le cadre disponible publiquement, qui vous permet de construire des logiciels au niveau des puzzles ? Eh bien, alors chacun peut construire son propre IDE à son goût et l'utiliser).

Dans quelques jours...
 

Lire, lire....

J'en ai marre de regarder ces frimeurs.

Toutes ces astuces ne sont pas nécessaires à un trader qui écrit une stratégie de trading pour lui-même.

Et encore plus pour les commandes personnalisées, car ce sont surtout les débutants qui commandent. Les commandes y sont issues d'une série d'innocences enfantines, qui sont mises en œuvre en quelques lignes de code.

Bien sûr, j'ai apprécié le fait que le support de python soit prévu.

C'est un ajout très utile.

 
Vict:

...Le reste d'entre nous continuera à prier le MC, en mettant consciencieusement des esperluettes devant les tableaux et en déréférençant par un point.

Quant au point, il est plus pratique et laconique, plus compatible avec les langages OOP. Au contraire, j'ai souvent pensé qu'il serait bien d'avoir la même fonctionnalité en C++. Bien sûr, il y a un inconvénient, mais je pense qu'il y a plus d'avantages.
 
Реter Konow:
Exactement ! Combien de noms de variables et de fonctions ont changé de cette façon. Un peu plus long que dans VS, mais plus de contrôle.
Ne confondez pas le remplacement automatique régulier du texte dans un fichier avec le remplacement sensible au contexte.

 
Alexey Navoykov:
Quant au point, il est plus pratique et laconique, plus la compatibilité avec les langages OOP. Au contraire, j'ai souvent pensé qu'il serait bien d'implémenter la même fonctionnalité en C++. Bien sûr, il y a un inconvénient à cela, mais il y a plus d'avantages, je pense.

Il faudrait alors se débarrasser des pointeurs intelligents, des itérateurs, etc. . Il faut en quelque sorte faire la distinction entre un appel de fonction du pointeur lui-même et le type pointé.

unique_ptr<type> ptr(...);
ptr->call_referenced();
ptr.release();

Un point ne peut pas être surchargé, c'est-à-dire que l'accès aux internes est garanti.

Renat Akhtyamov:

Et d'autant plus lorsqu'il s'agit de commander, puisque ce sont surtout les débutants qui commandent. Ce sont des ordres d'une innocence enfantine, qui sont mis en œuvre en quelques lignes de code.

Je me fous des commandes, j'écris pour moi-même et je partage mes connaissances avec d'autres, pas pour des marketeurs.

 
Vict:

Il faudrait alors abandonner les pointeurs intelligents, les itérateurs, etc. . Il faut en quelque sorte faire la distinction entre un appel de fonction du pointeur lui-même et le type pointé.

Un point ne peut pas être surchargé, c'est-à-dire que l'accès aux internes est garanti.

Eh bien, vous ne pouvez pas surcharger -> dans MQL, non plus. C'est pourquoi la différence est hors de question.
Au fait, est-il possible d'émuler cette surcharge dans Vim ?
 
Alexey Navoykov:
Ne confondez pas l'auto-substitution régulière du texte dans un fichier avec la substitution contextuelle.

Et à quoi ça sert ? Dans le cas où des variables avec des contextes différents ont le même nom dans le même fichier ? Substitution par le sens, pas par le texte ? Veuillez préciser où et pourquoi il doit être utilisé. Tout d'un coup, tout le monde en a besoin et certains ne le savent pas.

Zy. Google n'est pas non plus au courant de cette substitution...
 
Реter Konow:
Et à quoi ça sert ? Dans le cas où des variables avec des contextes différents ont le même nom dans le même fichier ? Substitution par le sens, pas par le texte ? Veuillez expliquer où et pourquoi l'utiliser. Tout d'un coup, tout le monde en a besoin, et certains ne le savent pas.
En principe, vous avez raison.
 
Alexey Navoykov:
En principe, vous avez raison.
Si tu le fais bien, c'est un truc d'ennemi juré. ))