列挙値に基づいて、コンパイルするコードの一部を選択したいと考えています。では、enum の使用とプリプロセッサ ディレクティブを組み合わせて、この目標を達成するにはどうすればよいでしょうか? 例は次のようなものです。
#include <iostream>
enum CODE {BINARY, PERMUTATION, BYVALUE};
#define ENCODING(x) (x)
using namespace std;
int main()
{
CODE code = PERMUTATION;
#if ENCODING(code) == BINARY
cout << "code: BINARY" << endl;
#elif ENCODING(code) == PERMUTATION
cout << "code: PERMUTATION" << endl;
#elif ENCODING(code) == BYVALUE
cout << "code: BYVALUE" << endl;
#endif
return 0;
}
明らかに、これは常に最初の #if ステートメントを取り、「code: BINARY」を表示するため、私の目的を達成するには正しくありません。列挙型を使用してコンパイルされたセグメントを制御する方法はありますか? ありがとうございました。