Инструменты> Опции> Шрифты и Цвета> "Экспонаты": простой текст
, К сожалению, это изменяется намного больше, чем просто фигурные скобки, но это - единственный способ предназначаться для них насколько я знаю.
Как упоминалось ранее - ничего.
Кроме того, в вашем коде есть опечатка.
это должно быть #else , а не #elif . если это #elif , за ним должно следовать новое условие
#include <iostream>
#ifdef NOOP
#define conditional_noop(x) do {} while(0)
#else
#define conditional_noop(x) std::cout << (x)
#endif
Удачного кодирования! РЕДАКТИРОВАТЬ: добавлена конструкция [do] для надежности, как предлагается в другом ответе.
Если оставить поле пустым - это очевидный вариант, я бы выбрал
#define conditional_noop(x) do {} while(0)
Этот трюк явно не работает, но заставляет вас писать точку с запятой после conditional_noop (123)
.
Определение макроса как void
хорошо передает ваше намерение.
#ifdef NOOP
#define conditional_noop(x) (void)0
#else
#ifdef NOOP
#define conditional_noop(x)
#elif
ничего!
Вы можете просто оставить поле пустым. Вам не нужно следовать #define
ни в чем.
#ifdef NOOP
static inline void conditional_noop(int x) { }
#else
static inline void conditional_noop(int x) { std::cout << x; }
#endif
Использование встроенной функции void включает проверку типа, даже если NOOP
не определен. Поэтому, когда NOOP
не определен, вы все равно не сможете передать структуру этой функции или неопределенную переменную.
Это в конечном итоге предотвратит появление ошибок компилятора при включении флага NOOP
.
Как уже говорили другие, оставьте он пуст.
Уловку, которую вы должны использовать, - это добавить к макросу (void) 0
, заставляя пользователей добавлять после него точку с запятой:
#ifdef NOOP
#define conditional_noop(x) (void)0
#else
#define conditional_noop(x) std::cout << (x); (void)0
#endif
В C ++, (void) 0
ничего не делает. В этой статье объясняются другие не очень хорошие варианты, а также их обоснование.
Поскольку это макрос, вы также должны принять во внимание случай, подобный
if (other_cond)
conditional_noop(123);
, на всякий случай, вы можете дать пустой оператор, такой как
#define conditional_noop(X) {}
для более старых версий C, иногда вам нужно определите пустой статус таким образом (он также должен быть оптимизирован):
#define conditional_noop(X) do {} while(0)