#if defined(_BE_) || !defined (_TO_BE_)

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

Читайте документацию. Условная компиляция (#ifdef, #ifndef, #else, #endif)

Так, прочел) И что там?

PS. Перечитайте еще раз мой пост внимательно

TheXpert
18275
TheXpert  
Andrey Pogoreltsev:
#ifndef _BE_
#ifdef _TO_BE_
#define _NOT_BE_TO_BE_
#endif // _TO_BE_
#endif // _BE_

// #if defined(_BE_) || !defined (_TO_BE_)
#ifndef _NOT_BE_TO_BE_
// сюда писать что хотелось
#endif
Edgar Akhmadeev
2320
Edgar Akhmadeev  

Как обычно, когда кто-то предлагает реализовать наконец-то  обычную и нужную функциональность, ему предлагают костыли.

Лично я присоединяюсь к просьбе. Самому надоели такие громоздкие костыли. Использую сложные условия препроцессора.

Vladimir Simakov
5986
Vladimir Simakov  
Edgar:

Как обычно, когда кто-то предлагает реализовать наконец-то  обычную и нужную функциональность, ему предлагают костыли.

Лично я присоединяюсь к просьбе. Самому надоели такие громоздкие костыли. Использую сложные условия препроцессора.

А в каком языке препроцессор с вашими хотелками реализован?
Edgar Akhmadeev
2320
Edgar Akhmadeev  

Я уже много лет не программировал на C++. Там есть "#if ВЫРАЖЕНИЕ". Возможно, в выражении нельзя использовать || и && (поиск навскидку не показал примеров этого в C++ и C#), но это же логичное развитие директивы, и несложное, на мой взгляд.

И вопрос не в том, что вот там есть, а здесь нет, или наоборот. А просто это очень нужная фича для тех, кто активно использует условную компиляцию.

Andrey Pogoreltsev
1166
Andrey Pogoreltsev  
Vladimir Simakov:
А в каком языке препроцессор с вашими хотелками реализован?

Это уже реализовано в C директивах 1992 года: https://docs.freebsd.org/info/cpp/cpp.pdf

TheXpert
18275
TheXpert  
Edgar:

Как обычно, когда кто-то предлагает реализовать наконец-то  обычную и нужную функциональность, ему предлагают костыли.

Во-первых это не костыль а решение.

Во-вторых это не значит что я против того, чтобы добавили составное условие и вообще #if  в дополнение к #ifdef.

Я за любой движ в развитии языка. Просто эта вещь вполне реализуема существующими конструкциями, есть более насущные вещи

Vladimir Simakov
5986
Vladimir Simakov  
Andrey Pogoreltsev:

Это уже реализовано в C директивах 1992 года: https://docs.freebsd.org/info/cpp/cpp.pdf

А в документе выделите, а то я только #ifdef/ifndef #else #endif нашел
TheXpert
18275
TheXpert  
Vladimir Simakov:
А в документе выделите, а то я только #ifdef/ifndef #else #endif нашел
ищите #if defined()
12
Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий