Vim como ideal para mql - página 4

 
Vladimir Simakov:
  1. O pré-processador a desenvolver, o mesmo # se é necessário.


Não é isso o que é?

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


Não é isso o que é?

Meu homem, eu escrevi sobre #if - não está lá. Aprenda o básico.
 
Vladimir Simakov:
Meu homem, eu escrevi sobre #if - não está lá. Aprenda o básico.

Bem, explique a diferença. Talvez eu aprenda alguma coisa. Caso contrário, morrerei ignorante...

 
Alexey Viktorov:

Portanto, explique a diferença. Talvez eu aprenda alguma coisa. Ou morrerei ignorante...

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

Bem, isso não é nada sério. Eu estarei morto antes de aprender inglês.

 
Alexey Viktorov:

Bem, isso não é nada sério. Eu estarei morto antes de aprender inglês.

Infelizmente, tudo de bom é inventado lá, portanto, se você não sabe inglês, então o problema é seu. Pessoalmente, estou aprendendo. Os mesmos documentos no google traduzem os profissionais, contribuem muito até mesmo para o aprendizado, porque a porcaria deste tradutor em russo é tal que simplesmente não há para onde ir. Mas os atiradores de elite com sorte, como a equipe russa na equipe de desenvolvimento um pouco mais que um centavo))))
 
Alexey Viktorov:

Bem, isso não é nada sério. Eu estarei morto antes de aprender inglês.

se rápido e muito rápido, #if é uma verificação para uma condição conhecida antes da compilação, enquanto na MQL há apenas #ifdef - uma verificação para a definição correspondente, ou seja, o código

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

não vai funcionar

mas isso não é exato! )))) - Eu não gosto de macros, mas às vezes é difícil sem elas ((((

 
Igor Makanu:

se rápido e muito rápido, #if é uma verificação para uma condição conhecida antes da compilação, enquanto na MQL há apenas #ifdef - uma verificação para a definição correspondente, ou seja, o código

não vai funcionar

mas isso não é exato! )))) - Eu não gosto de macros, mas às vezes é difícil sem elas ((((

Não conheço exatamente os últimos padrões C++, mas "#if x>0" parece não ser implementado em nenhum lugar. Trata-se normalmente de "# se DEBUG && definidos NÍVEIS", pelo menos.

 

Tem havido muitas reclamações sobre o editor nos últimos anos. Dizer "faça uma lista" é errado. Ninguém vê utilidade em sentar-se seriamente e fazer tal lista porque não acredita na resposta.

Para melhorar o editor, tudo o que você tem que fazer é começar a implementar recursos padrão das IDEs populares.

Em poucas palavras, o que falta para mim:

Dobra de código.

Lista completa de funções por Alt-M, mesmo que as funções estejam embrulhadas em #ifdef/#endif.

Chamando um estilizador externo. Eu uso clang. O embutido não me serve em nada, são apenas conjuntos de ajustes fixos.

Controla mudanças externas para arquivos abertos.

Opções mais poderosas de depuração. Por exemplo, mudança de valores variáveis, pontos de parada em mudanças variáveis (inclusive por condição). Não espero "dar um passo atrás" na depuração, é demais.

Tudo isso tem sido implementado nos anos de fúria.

 
Edgar Akhmadeev:

Não conheço exatamente os últimos padrões C++, mas "#if x>0" não parece ser implementado em nenhum lugar. Trata-se normalmente de "# se DEBUG && definidos NÍVEIS", pelo menos.

#define a 3
#se a<5
...
#endif
Isto vai funcionar. A questão aqui é a fase de tradução. Quando o pré-processador está em funcionamento, ele não sabe nada sobre variáveis constexpr, porque este já é o tempo de compilação.
Razão: