Vim como ide para mql - página 4

 
Vladimir Simakov:
  1. El preprocesador a desarrollar, el mismo #if es necesario.


¿No es eso lo que es?

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


¿No es eso lo que es?

Hombre, yo escribí sobre #if - no está ahí. Aprende lo básico.
 
Vladimir Simakov:
Hombre, yo escribí sobre #if - no está ahí. Aprende lo básico.

Bueno, explica la diferencia. Tal vez aprenda algo. Si no, moriré ignorante...

 
Alexey Viktorov:

Así que explica la diferencia. Tal vez aprenda algo. O moriré ignorante...

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

Bueno, eso no es nada serio. Estaré muerto antes de aprender inglés.

 
Alexey Viktorov:

Bueno, eso no es nada serio. Estaré muerto antes de aprender inglés.

Por desgracia, todo lo mejor está inventado allí, así que si no sabes inglés, es tu problema. Personalmente, estoy aprendiendo. Los mismos docs en google traducen los pros, muy incluso contribuir al aprendizaje, porque tal mierda de este traductor en ruso que simplemente no hay donde ir. Pero los tiradores con los muelles de la suerte, como el equipo ruso en el equipo de desarrollo un poco más de un dime))))
 
Alexey Viktorov:

Eso no es nada serio. Estaré muerto antes de aprender inglés.

si rápido y muy rápido, #if es una comprobación de una condición conocida antes de la compilación, mientras que en MQL sólo hay #ifdef - una comprobación de la definición correspondiente, es decir, el código

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

no funcionará

pero eso no es exacto. )))) - No me gustan las macros, pero a veces es difícil sin ellas ((((

 
Igor Makanu:

si rápido y muy rápido, #if es una comprobación de una condición conocida antes de la compilación, mientras que en MQL sólo hay #ifdef - una comprobación de la definición correspondiente, es decir, el código

no funcionará

pero eso no es exacto. )))) - No me gustan las macros, pero a veces es difícil sin ellas ((((

No conozco exactamente los últimos estándares de C++, pero "#if x>0" parece no estar implementado en ninguna parte. Suele tratarse de "#if defined DEBUG && defined LEVELS", al menos.

 

En los últimos años ha habido muchas quejas sobre el editor. Decir "hacer una lista" es un error. Nadie ve el sentido de sentarse seriamente a hacer esa lista porque no cree en la respuesta.

Para mejorar el editor, todo lo que tienes que hacer es empezar a implementar las características estándar de los IDEs más populares.

En pocas palabras, lo que falta para mí:

Plegado de códigos.

Lista completa de funciones por Alt-M, incluso si las funciones están envueltas en #ifdef/#endif.

Llamada a un estilista externo. Yo uso clang. La incorporada no me gusta nada, son conjuntos de ajustes fijos.

Controla los cambios externos en los archivos abiertos.

Opciones de depuración más potentes. Por ejemplo, el cambio de valores de las variables, los puntos de interrupción en los cambios de las variables (incluso por condición). No espero "retroceder" al depurar, es demasiado.

Todo ha sido implementado en los años de la melena.

 
Edgar Akhmadeev:

No conozco exactamente los últimos estándares de C++, pero "#if x>0" no parece estar implementado en ninguna parte. Suele tratarse de "#if defined DEBUG && defined LEVELS", al menos.

#define a 3
#si a<5
...
#endif
Esto funcionará. Lo importante aquí es la fase de traducción. Cuando el preprocesador se está ejecutando, no sabe nada sobre las variables constexpr, porque esto ya está en tiempo de compilación.
Razón de la queja: