Я задающийся вопросом, если это возможный иметь препроцессор ИЛИ или И оператор? У меня есть этот код, где я хочу работать под _DEBUG
или _UNIT_TEST
теги (?).
То, что я хочу, является чем-то как следующее:
#if _DEBUG || _UNIT_TEST
//Code here
#endif
Если это не возможно, там обходное решение для достижения того же самого, не имея необходимость копировать код с помощью a #elseif
?
#if defined _DEBUG || defined _UNIT_TEST
//Code here
#endif
Можно также использовать операторы AND и NOT. For instance:
#if !defined _DEBUG && defined _UNIT_TEST
//Code here
#endif
#if
принимает любое выражение C ++ целочисленного типа (1), которое компилятору удается вычислить во время компиляции. Итак, да, вы можете использовать ||
и &&
, если вы используете defined (SOMETHING)
для проверки определенности.
(1): ну, это немного более ограничено, чем это; для более подробного ознакомления с ограничениями здесь (на «с этими дополнительными ограничениями» ).
#if defined(_DEBUG) || defined(_UNIT_TEST)
//Code here
#endif
Также для записи: #elif
, а не #elseif
.