Как создать функцию только для отладки, которая принимает список переменных аргументов? Как printf()

Вот как я делаю отладочные c-preprocessor распечатки в C++. Определите c-preprocessor 'dout' (отладка) следующим cxx образом:

#ifdef DEBUG
#define dout cout
#else
#define dout 0 && cout
#endif

В коде я использую c 'dout' так же, как и 'cout'.

dout << "in foobar with x= " << x << " and y= " << y << '\n';

Если c-preprocessor препроцессор заменяет 'dout' на c-preprocessor '0 && cout', обратите внимание, что c++ << имеет более высокий c-preprocessor приоритет, чем &&, и краткое c++ вычисление && приводит к c тому, что вся строка оценивается cpp как 0. Поскольку 0 не используется, компилятор cxx не генерирует код в точке cpp все для этой строки.

c++

c

c-preprocessor

2022-10-03T03:50:16+00:00
Вопросы с похожей тематикой, как у вопроса:

Как создать функцию только для отладки, которая принимает список переменных аргументов? Как printf()