c++ - 一旦存在 std::underlying_type_t, "enum class"与简单的 "enum"相比有何优势?

标签 c++ enums c++14

<分区>

enum class 旨在提供类型安全,从而消除通过整数提升隐式转换为整数,但是一旦我们拥有 std::underlying_type_t 的优势枚举类我不清楚。

最佳答案

enumenum class 有两个主要区别:

  1. enum class 不允许在 enum class 值和底层类型之间进行隐式转换。是的,您可以进行显式转换,但它不会自动发生。

  2. enum class 引入了一个新的作用域。

enum Enum
{
    Value1,
    Value2 // <- both values are accessible without `Enum::`
}

enum class EnumClass
{
    Value1,
    Value2 // <- values are accessible only with `EnumClass::` prefix
}

关于c++ - 一旦存在 std::underlying_type_t, "enum class"与简单的 "enum"相比有何优势?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57587203/

相关文章:

c++ - 为什么 std::thread 通过转发引用接受仿函数

c++ - 什么是 lambda 函数类型? C++

c++ - 带有 "partition by"的准备好的语句对 Sybase IQ 不起作用?

c++ - 为什么在下面的程序中没有调用复制构造函数?

java - 有没有办法在初始化枚举时传递变量而不是在java中传递实际值?

c# - 根据 Entity Framework 中的数据库列值显示枚举文本

c++ - c++中变量的奇怪行为

c++ - 声明静态类变量

c++ - gdb fork() 在 Linux 上执行

来自类的 Java 枚举列表