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

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

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

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

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

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

c++

c

c-preprocessor

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

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