Vim comme idéal pour mql - page 4

 
Vladimir Simakov:
  1. Le préprocesseur à développer, le même #if est nécessaire.


N'est-ce pas ce que c'est ?

Документация по MQL5: Основы языка / Препроцессор / Условная компиляция (#ifdef, #ifndef, #else, #endif)
Документация по MQL5: Основы языка / Препроцессор / Условная компиляция (#ifdef, #ifndef, #else, #endif)
  • www.mql5.com
Директивы препроцессора используются компилятором для предварительной обработки исходного кода перед его компиляцией. Директива всегда начинается со знака Каждая директива описывается отдельной записью и действует до переноса строки. Нельзя в одной записи использовать несколько директив. Если запись директивы получается слишком большой, то её...
 
Alexey Viktorov:


N'est-ce pas ce que c'est ?

Mon gars, j'ai écrit sur #if - il n'est pas là. Apprenez les bases.
 
Vladimir Simakov:
Mon gars, j'ai écrit sur #if - il n'est pas là. Apprenez les bases.

Eh bien, explique la différence. Je vais peut-être apprendre quelque chose. Sinon, je mourrai ignorant...

 
Alexey Viktorov:

Alors explique la différence. Je vais peut-être apprendre quelque chose. Ou je mourrai ignorant...

https://en.cppreference.com/w/cpp/preprocessor
 
Vladimir Simakov:
https://en.cppreference.com/w/cpp/preprocessor

Ce n'est pas sérieux du tout. Je serai mort avant d'apprendre l'anglais.

 
Alexey Viktorov:

Eh bien, ce n'est pas sérieux du tout. Je serai mort avant d'apprendre l'anglais.

Malheureusement, tout le meilleur est inventé là-bas, donc si vous ne connaissez pas l'anglais, alors c'est votre problème. Personnellement, j'apprends. Les mêmes documents sur google translate les pros, très beaucoup même contribuer à l'apprentissage, parce que telle merde de ce traducteur en russe qu'il ya tout simplement nulle part où aller. Mais les tireurs d'élite avec les quais chanceux, comme l'équipe russe dans l'équipe de développement un peu plus d'un dixième))))
 
Alexey Viktorov:

Ce n'est pas sérieux du tout. Je serai mort avant d'apprendre l'anglais.

si rapide et très rapide, #if est une vérification d'une condition connue avant la compilation, alors qu'en MQL il n'y a que #ifdef - une vérification de la définition correspondante, c'est-à-dire le code

const int x = 2;
#if  x>0 #include "lib1.mqh"
#elif   #include "lib2.mqh" 
#endif

ne fonctionnera pas

mais ce n'est pas exact ! )))) - Je n'aime pas les macros, mais il est parfois difficile de s'en passer. ((((

 
Igor Makanu:

si rapide et très rapide, #if est une vérification d'une condition connue avant la compilation, alors qu'en MQL il n'y a que #ifdef - une vérification de la définition correspondante, c'est-à-dire le code

ne fonctionnera pas

mais ce n'est pas exact ! )))) - Je n'aime pas les macros, mais il est parfois difficile de s'en passer. ((((

Je ne connais pas exactement les dernières normes C++, mais "#if x>0" ne semble être implémenté nulle part. Il s'agit généralement de "#if defined DEBUG && defined LEVELS", au moins.

 

Le rédacteur en chef a fait l'objet de nombreuses plaintes ces dernières années. Dire "faire une liste" est faux. Personne ne voit l'intérêt de s'asseoir sérieusement et de faire une telle liste parce qu'ils ne croient pas en la réponse.

Pour améliorer l'éditeur, il suffit de commencer à mettre en œuvre les fonctionnalités standard des IDE populaires.

En un mot, ce qui manque pour moi :

Pliage de code.

Liste complète des fonctions par Alt-M, même si les fonctions sont entourées de #ifdef/#endif.

Appel d'un styliste externe. J'utilise clang. L'intégré ne me convient pas du tout, c'est juste des séries de réglages fixes.

Contrôle les modifications externes des fichiers ouverts.

Options de débogage plus puissantes. Par exemple, la modification des valeurs des variables, les points d'arrêt sur les changements de variables (y compris par condition). Je n'espère pas pouvoir "prendre du recul" lors du débogage, c'est trop.

Tout cela a été mis en œuvre dans les années hirsutes.

 
Edgar Akhmadeev:

Je ne connais pas exactement les dernières normes C++, mais "#if x>0" ne semble être implémenté nulle part. Il s'agit généralement de "#if defined DEBUG && defined LEVELS", au moins.

#define a 3
#if a<5
...
#endif
Ça va marcher. Il s'agit ici de la phase de traduction. Lorsque le préprocesseur s'exécute, il ne sait rien des variables constexpr, car cela se fait déjà au moment de la compilation.