我需要写功能就像这样:宏内部枚举C++
void foo()
{
//some details
}
enum fun_names
{
fun_name_foo,
};
所以我做了2个宏:
#define MAKE_FUN(fun) void fun(){}
#define ADD_FUN(fun) fun_name_##fun,
然后使用它们像这样:
MAKE_FUN(foo)
MAKE_FUN(bar)
enum fun_names
{
ADD_FUN(foo)
ADD_FUN(bar)
};
但作为你可以看到,我使用完全相同的参数重复2个宏。是否有可能使这样一个单一的宏?
CREATE_FUN(foo)
CREATE_FUN(bar)
这节省了代码行并且不易出错。
为什么不直接命名枚举值? 'fun_name_foo'难以输入比'ADD_FUN(foo)'? –
@JonathanPotter,通过这样做,我可以定义函数并将其添加到枚举中,只需要1行? – Immueggpain