C++相談室 part123 [無断転載禁止]©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0474デフォルトの名無しさん
2016/03/19(土) 15:06:03.88ID:4a76PkUY#define STR(head ,name) head ## name
#define MAKE(...) \
typedef enum _ENUM{ \
STR(ENUM_,__VA_ARGS__ ),ENUM_Num \
} ENUM; \
const char *Name[ENUM_Num] ={ #__VA_ARGS__ };
というマクロで
MAKE(one,two,three)
とすると、本来はENUM_one ENUM_two ENUM_three というenumの要素が得られるはずなのに、
なぜか生成されるのはENUM_one two threeの三つになってしまいます。
Visual Studio 2015 CommunityのIntelisenceでのエラーなのですが、
これは本来は予期している結果が得られているのでしょうか?
それともこいつが言うように実際は後者のような宣言になっているのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています