3

ここで、stackoverflowで 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 とストリーム指向のデバッグ出力を調整する方法はありますか?

4

1 に答える 1

2

これはさらに洗練される可能性がありますが、出発点としてこれを試してください。

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

その後、コードの後半で:

LOG_DEBUG( __FILE__ << " bla bla bla " << foo );
于 2012-09-24T09:09:52.457 に答える