Tag: boost preprocessor

我可以附加到预处理器宏吗?

在标准C或GNU扩展中有什么方法可以将内容附加到宏定义中吗? 例如 ,给定宏定义为 #define List foo bar 我可以追加bas以便List扩展,就像我定义它一样 #define List foo bar bas ? 我希望我能做到这样的事情: #define List foo bar bas #define List_ Expand(List) #undef List #define List Expand(List_) quux 但我无法弄清楚如何定义Expand()宏,所以它会做我想要的。 动机:我正在沿着以下方面玩歧视/标记的联盟: struct quux_foo { int x; }; struct quux_bar { char *s; }; struct quux_bas { void *p; }; enum quux_type {quux_foo, quux_bar, quux_bas}; struct […]