動作環境
C++ Builder XE4
Cの実装においてテストデータを試験的に切り替えたい。
#define
は多用したくないが、とりあえず3つの定義をした。
// 以下のいずれかを有効にしてください。
#define USE_CASE0
//#define USE_CASE1
//#define USE_CASE2
上記の場合、2つ以上の定義をされたくない。
({0,1}, {0,2}, {0,1,2}, {1,2})をはねる。
以下とした。
#if !( defined(USE_CASE0) || defined(USE_CASE1) || defined(USE_CASE2) )
#error "Line17: No case is selected"
#endif
#if ( defined(USE_CASE0) && ( defined(USE_CASE1) || defined(USE_CASE2) ) )
#error "Line21: Too many cases selected"
#endif
#if ( defined(USE_CASE1) && defined(USE_CASE2) )
#error "Line25: Too many cases selected"
#endif
もっと綺麗な書き方があるかもしれない。
改良版
@SaitoAtsushi さんによるコメント
に改良コードがあります。
情報感謝です。