【发布时间】:2017-03-13 00:03:42
【问题描述】:
我正在定义一个宏,其中我将标记作为参数,并将其附加到前缀,如下所示:
Enum::Type var = FULL_NAME(enum1);
应该翻译成:
Enum::Type var = Enum::Type::enum1;
我读到您可以使用 ## 运算符连接两个参数,如下所示:
#define glue(a, b) (a ## b)
但是我可以像这样使用它吗
#define FULL_NAME(name) (Enum::Type ## name)
?
如果没有,正确的做法是什么?
【问题讨论】:
标签: c++ arguments concatenation c-preprocessor preprocessor-directive