enum XX
{
x1 // 0; 可直接访问,并且与整数值进行比较
x2 //1;
}
C++11:
引入enum class XX,作用域枚举,访问需要作用域XX::x1,不能隐式转换为整数,可以显示转换如下:
static_cast<int>(xx)
C++17:
enum class XX{x1};
XX e{0}; //可直接初始化赋值
C++20:
int x = std::to_underlying(xx) //可以直接转换为基础类型
using enum XX; //可以在之后范围内直接访问XX内元素