Отладочная печать C ++ в поток генерирует предупреждения

Я видел этот отладочный отпечаток для C ++ здесь на стеке потока но я не могу это комментировать (я новичок):

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

Используется так:

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

На первый взгляд, мне понравилось, но я компилирую с -Wall, поэтому я получаю много предупреждений, таких как

test1.cc:30:46: предупреждение: оператор не имеет эффекта [-Wunused-value]

Есть ли способ примирить -Wall и потоковой отладочной печати?

3

Решение

Это может быть доработано, но попробуйте это в качестве отправной точки:

#ifdef DEBUG
#define LOG_DEBUG( stuff ) { std::cout << stuff << std::endl; }
#else
#define LOG_DEBUG( stuff )
#endif

Тогда позже в коде:

LOG_DEBUG( __FILE__ << " bla bla bla " << foo );
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]