Vim come ide per mql - pagina 4

 
Vladimir Simakov:
  1. Il preprocessore da sviluppare, lo stesso #if è necessario.


Non è quello che è?

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


Non è quello che è?

Amico mio, ho scritto di #if - non c'è. Imparare le basi.
 
Vladimir Simakov:
Amico mio, ho scritto di #if - non c'è. Imparare le basi.

Bene, spiega la differenza. Forse imparerò qualcosa. Altrimenti, morirò ignorante...

 
Alexey Viktorov:

Quindi spiegate la differenza. Forse imparerò qualcosa. O morirò ignorante...

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

Beh, non è affatto serio. Sarò morto prima di imparare l'inglese.

 
Alexey Viktorov:

Beh, non è affatto serio. Sarò morto prima di imparare l'inglese.

Purtroppo, tutto il meglio è inventato lì, quindi se non conosci l'inglese, allora è un tuo problema. Personalmente, sto imparando. Gli stessi documenti su google translate i professionisti, molto anche contribuire a imparare, perché tale merda da questo traduttore in russo che c'è semplicemente nessun posto dove andare. Ma i tiratori scelti con le banchine fortunate, come la squadra russa nel team di sviluppo poco più di un dime))))
 
Alexey Viktorov:

Non è affatto serio. Sarò morto prima di imparare l'inglese.

se veloce e molto veloce, #if è un controllo per una condizione conosciuta prima della compilazione, mentre in MQL c'è solo #ifdef - un controllo per la definizione corrispondente, cioè il codice

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

non funzionerà

ma non è esatto! )))) - Non mi piacciono le macro, ma a volte è difficile senza di loro ((((

 
Igor Makanu:

se veloce e molto veloce, #if è un controllo per una condizione conosciuta prima della compilazione, mentre in MQL c'è solo #ifdef - un controllo per la definizione corrispondente, cioè il codice

non funzionerà

ma non è esatto! )))) - Non mi piacciono le macro, ma a volte è difficile senza di loro ((((

Non conosco esattamente gli ultimi standard C++, ma "#if x>0" sembra non essere implementato da nessuna parte. Di solito si tratta di "#if defined DEBUG && defined LEVELS", almeno.

 

Ci sono state molte lamentele sull'editore negli ultimi anni. Dire "fare una lista" è sbagliato. Nessuno vede il senso di sedersi seriamente e fare una tale lista, perché non crede nella risposta.

Per migliorare l'editor, tutto quello che dovete fare è iniziare a implementare le caratteristiche standard degli IDE più diffusi.

In poche parole, cosa manca per me:

Piegatura del codice.

Elenco completo delle funzioni con Alt-M, anche se le funzioni sono avvolte in #ifdef/#endif.

Chiamare uno styler esterno. Io uso clang. Quella integrata non mi piace per niente, è solo una serie di impostazioni fisse.

Controlla le modifiche esterne ai file aperti.

Opzioni di debug più potenti. Per esempio, la modifica dei valori delle variabili, i breakpoint sui cambiamenti delle variabili (anche per condizione). Non spero di "fare un passo indietro" durante il debugging, è troppo.

Tutto questo è stato implementato negli anni del "shaggy".

 
Edgar Akhmadeev:

Non conosco esattamente gli ultimi standard C++, ma "#if x>0" non sembra essere implementato da nessuna parte. Di solito si tratta di "#if defined DEBUG && defined LEVELS", almeno.

#define a 3
#if a<5
...
#endif
Questo funzionerà. Il punto centrale qui è la fase di traduzione. Quando il preprocessore è in esecuzione, non sa nulla delle variabili constexpr, perché questo è già in fase di compilazione.