要件が前後に変化するため、コード内で const を使用する if/else ブロックがいくつかあります。たとえば、次のようになります。
const bool DisplayAverageValues = true;
if(DisplayAverageValue)
{
// Do this
}
else
{
// Do that
}
要件が再び変更される可能性があるため、現在使用されていないコードは削除したくありません。来週必要になる可能性があります。また、リファクタリングの一部にしたいので、未使用のコードをコメントアウトしたくありません。ブール値を変更するだけで、いつでもコンパイルできるようになります。
問題は、到達できないコードに対して警告が表示されることです。そのため、標準の if/else ブロックをプリプロセッサ #if/#else に置き換えることを考えていました。
#define DisplayAverageValues
#if DisplayAverageValue
// Do this
#else
// Do that
#endif
私が今直面している問題は、プリプロセッサ シンボルを false に設定できず、定義または未定義しかできないことです。次から変更する方がはるかに明白です。
#define DisplayAverageValues true
に
#define DisplayAverageValues false
それ以外の
#undef DisplayAverageValues
また
//#define DisplayAverageValues
(同じシンボル名が他の場所で使用されていると、問題が発生する可能性があります)。
より良い方法はありますか?