プログラムのデバッグ目的で冗長性を高めることができるようにしたいと考えています。もちろん、実行時にスイッチ/フラグを使用してそれを行うことができます。しかし、コードにすべての「if」ステートメントを追加する必要があるため、これは非常に非効率的です。
したがって、コンパイル中に使用するフラグを追加して、必要のないときにプログラムのパフォーマンス/サイズに影響を与えることなく、オプションの、通常は遅いデバッグ操作をコードに含めることができます。例を次に示します。
/* code */
#ifdef _DEBUG_
/* do debug operations here
#endif
したがって、 -D_DEBUG_ を指定してコンパイルするとうまくいくはずです。それがなければ、その部分は私のプログラムに含まれません。
別のオプション (少なくとも i/o 操作の場合) は、少なくとも次のような i/o 関数を定義することです。
#ifdef _DEBUG_
#define LOG(x) std::clog << x << std::endl;
#else
#define LOG(x)
#endif
ただし、これはおそらく最もクリーンな方法ではないと強く思います。それで、代わりに何をしますか?