私はしばらくの間C++を書いていますが、マクロの経験はほとんどありません。私はこのトピックに関する他の質問のいくつかを読みましたが、それらを私の問題に完全に翻訳することはできません。
ENUM_PRAGMA(foo)
コーディングによって生成されるマクロを定義したいのですが_Pragma("enum(foo)")
、#pragma enum(foo)
(コンパイラはサポートしています_Pragma("string")
。)
私はの複数のバリエーションを試しました
#define ENUM_PRAGMA(siz) \
_Pragma( "enum(" #siz ")" )
しかし、それらのいずれも機能させることはできません。
_Pragmaの引用符で囲まれた文字列を作成するマクロを実装するにはどうすればよいですか?私は試した
#define HELPER1(x) enum( x )
#define HELPER2(y) HELPER1(#y)
#define ENUM_PRAGMA(siz) _Pragma(HELPER2(siz))
しかし、私はまだそこにいません。(エラーがstring literal was expected but enum was found
発生したため、HELPER2が文字列を引用していないと思います。
誰かがこれについて私をユーモアを交えてくれますか?どうもありがとう。