【问题标题】:C++ debug print to stream generates warningsC++ 调试打印流生成警告
【发布时间】:2012-09-15 17:05:41
【问题描述】:

我看到了这个 c++ 的调试打印 here on stackoverflow 但我不能评论它(我是新手):

#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 和面向流的调试打印?

【问题讨论】:

  • 您可以使用#pragma 禁用您知道的特定警告
  • 您是建议全局禁用还是有办法将其合并到宏中?
  • 它在文件的范围内工作,IIRC

标签: c++ stream debug-print


【解决方案1】:

这可以进一步细化,但尝试以此为起点:

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

然后在后面的代码中:

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

【讨论】:

    猜你喜欢
    • 2011-03-28
    • 1970-01-01
    • 1970-01-01
    • 2018-11-26
    • 2013-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多