c++11 - 强类型枚举 - `class` 关键字可选?

标签 c++11 c++14

在支持强类型枚举的“现代”C++ 中:class 关键字是可选的吗?

我看到定义枚举的代码如下:

enum SomeEnum: unsigned int {
    VAL1 = 0,
    VAL2 = 1,
    // ...
};

这是不同的事情吗,编译器的草率(VS 2015 (MSVC 19))还是如果枚举是强类型的,class关键字是隐式的吗?

最佳答案

问题中的代码声明了一个正常的无作用域枚举,但其基础类型是固定的。因此它与enum class不同,因为它仍然没有为其枚举器引入范围。

关于c++11 - 强类型枚举 - `class` 关键字可选?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48109296/

相关文章:

c++ - 在标准 (C++14) 的哪个地方说以下两个声明是等价的?

c++ - 在没有代码重复的情况下将 C 函数包装在自动对象中

c++11 - 按值返回时复制 ctor C++11

c++ - std::accumulate() 只是复数 std::vector 的实部

c++ - 如何初始化 constexpr 引用

c++ - 使用模板解决了多重定义

c++ - 隐式转换未按预期工作

debugging - 如何在 Visual Studio Code 中调试 C++ 代码

c++ - 我可以以 constexpr 方式获取 C++ 类型名称吗?

c++ - 如何使用基元和特征创建尾随返回类型?