C++11 强类型枚举-`class`关键字可选? 在“现代”C++中支持强类型枚举:类关键字是否可选?< /P>
我看到定义枚举的代码如下:C++11 强类型枚举-`class`关键字可选? 在“现代”C++中支持强类型枚举:类关键字是否可选?< /P>,c++11,c++14,C++11,C++14,我看到定义枚举的代码如下: enum SomeEnum: unsigned int { VAL1 = 0, VAL2 = 1, // ... }; 这是另一回事,编译器的草率(VS 2015(MSVC 19))还是类关键字在枚举为强类型时是隐式的?问题中的代码声明了一个正常的非范围枚举,但其基本类型是固定的。因此,它不同于枚举类,因为它仍然没有为其枚举数引入作用域。因为c++11即使是普通的枚举(仍然存在)也可以接受底层类型规范 枚举键属性(可选)标识符(可选)枚举基(
enum SomeEnum: unsigned int {
VAL1 = 0,
VAL2 = 1,
// ...
};
这是另一回事,编译器的草率(VS 2015(MSVC 19))还是
类
关键字在枚举为强类型时是隐式的?问题中的代码声明了一个正常的非范围枚举,但其基本类型是固定的。因此,它不同于枚举类
,因为它仍然没有为其枚举数引入作用域。因为c++11
即使是普通的枚举(仍然存在)也可以接受底层类型规范
枚举键属性(可选)标识符(可选)枚举基(可选)(C++11){enumerator list(可选)}
重点矿山
因此,它是一个正常的枚举
而不是枚举类
,而是一个枚举基
规范。您所称的“强类型枚举”实际上是命名的,而对于那些类
或结构
关键字是必需的
使用“继承”语法不是作用域枚举的一部分,它们也可以用于普通枚举