我试图在C++中编写相当于枚举的枚举,而不是一个,比如说
enum
{
foo,
bar = 8,
baz = 16,
};
Run Code Online (Sandbox Code Playgroud)
将会有很多条目,每隔一段时间会添加新的条目,为了清楚起见,它们确实希望以不同于输入顺序的顺序编写,因此不必手动更新所有数字.我已经尝试过使用宏预处理器技巧,但到目前为止还没有骰子.有没有办法做到这一点,我忽略了?
Pav*_*aev 25
#define NEXT_ENUM_MEMBER(NAME) \
NAME##_dummy, \
NAME = NAME##_dummy - 1 + 8
enum MyEnum {
Foo,
NEXT_ENUM_MEMBER(Bar),
NEXT_ENUM_MEMBER(Baz),
...
};
Run Code Online (Sandbox Code Playgroud)
我更喜欢这样的东西:
enum {
foo = (0 << 3),
bar = (1 << 3),
baz = (2 << 3),
};
Run Code Online (Sandbox Code Playgroud)
它不是自动化的,但在添加新的枚举常量时不需要太多思考.