我想要强大的枚举类型。 C ++ 0x具有此功能,但遗憾的是它们还需要显式范围界定:
enum class E {e1, e2, e3};
E x = E::e1; //OK
E y = e1; //error
有时这是可取的,但有时它只是不必要的冗长。标识符本身可能足够唯一,或者枚举可能已经嵌套在类或命名空间中。
所以我正在寻找一种解决方法。在周围范围内声明枚举值的最佳方法是什么?
答案 0 :(得分:7)
如果您希望在周围范围内显示值,只需添加几个常量:
enum class E {e1, e2, e3};
const E e1 = E::e1;
const E e2 = E::e2;
const E e3 = E::e3;