我想要强枚举类型。 C++0x 具有此功能,但不幸的是,它们还需要明确的作用域:
enum class E {e1, e2, e3};
E x = E::e1; //OK
E y = e1; //error
有时这是可取的,但有时只是不必要的冗长。标识符本身可能足够唯一,或者枚举可能已经嵌套在类或命名空间中。
所以我正在寻找解决方法。在周围范围内声明枚举值的最佳方式是什么?
最佳答案
如果您希望值在周围范围内可见,只需添加几个常量:
enum class E {e1, e2, e3};
const E e1 = E::e1;
const E e2 = E::e2;
const E e3 = E::e3;
关于c++ - 没有明确范围的强类型枚举?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6978811/