【发布时间】:2014-04-17 13:15:28
【问题描述】:
struct Error
{
MACRO(1, Connect);
MACRO(2, Timeout);
};
我需要以这样的方式定义 MACRO() 上面的代码将生成以下代码。
struct Error
{
static const int Connect = 1;
static const int Timeout = 2;
const char * const name[] = {"Connect", "Timeout"};
};
这可能吗?或者有什么替代方法可以得到我想要做的事情?
【问题讨论】:
-
你也许可以做到这一点,但它会很复杂,我不推荐它。你更大的目标是什么?你为什么要这个?好像是XY Problem。
-
我相信你想要做的事情不能用宏来实现。
-
使用XMacro
-
@MohitJain 感谢您的链接。我已经用了很长一段时间了,但我从来不知道它有名字。
标签: c macros c-preprocessor