我需要寫功能就像這樣:宏內部枚舉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