scoped enum是在enum关键字后面加上一个class,内容的默认类型是int,
enum class Color { black, white, red };
如果不想使用int,也可以像这样显示指定,enum class Status: std::uint32_t;
C++98风格的枚举,现在称作为unscoped enum。
scoped enum的枚举元素只在enum内可见,元素只能强制转换成其他类型。
scoped enum和unscoped enum都可以指定潜在类型。scoped enum默认是int,unscoped enum没有默认类型。
scoped enum总是能前置声明,unscoped enum只有指定了潜在类型,才可以前置声明。