1

現在のプロジェクトでは、さまざまなソリューションのパフォーマンスへの影響を確認するために多くの実験を行っています。私はすべてのコードを保持したいので、多くの #ifdef ディレクティブを使用して、いくつかの最適化のオンとオフを簡単に切り替えることができます。ただし、一部の定義の組み合わせはカバーされていません。これが発生した場合、コンパイラ エラーが表示されるようにしたいと思います。つまり、次のようになります。

#define A
#define B

#ifdef A
#ifdef B
//invalid combination of defines. Compiler should raise an error.
#endif
#endif

#ifdef A
//do something
#endif
#ifdef B
//do something else
#endif

それは可能ですか?

4

4 に答える 4

8

はい。エラー ディレクティブ( )を使用するだけ#errorです。

#ifdef A
#ifdef B
#error "invalid combination of defines."
#endif
#endif
于 2012-07-08T10:15:31.373 に答える
2

エラー プリプロセッサ ディレクティブを使用します。

#error "Invalid combination"
于 2012-07-08T10:18:28.847 に答える
2
#if defined(A) && defined(B)
#error invalid combination of defines
#endif
于 2012-07-08T10:19:22.397 に答える
2
#ifdef A
#ifdef B
//invalid combination of defines. Compiler should raise an error.
#error Invalid combination
#endif
#endif
于 2012-07-08T10:15:43.027 に答える