コードにいくつかのタイプの出力メッセージが必要だとしましょう。それらの1つはDEBUG、コードがデバッグモードでコンパイルされたときにのみ出力されます。
通常私は
#ifdef DEBUG
std::cout << "Debug message" << std::endl;
#endif
これはかなり面倒で、多くの場所で使用するのは面倒です。
コードスニペットのマクロを定義することをお勧めします。このように使用しますか?
MSG_DEBUG("Debug message")
または、マクロなしでそれを処理する他のよりエレガントな方法はありますか?異なるプロジェクトで両方の言語を使用しているため、CとC ++の両方で可能なソリューションに興味があります。
STDERRます。また、なぜそれが依存しないNDEBUGようにassert()代わりのですか?次に#define DEBUG_MSG(MSG) assert(std::cerr << MSG)、のように定義して、ストリーム状態もテストできます。