enum class旨在提供类型安全性,从而通过整数提升消除了隐式转换为整数的方法,但是一旦获得std::underlying_type_t优势,enum class我就不清楚。
enum和之间有两个主要区别enum class:
enum class不允许在enum class值和基础类型之间进行隐式转换。是的,您可以进行显式转换,但不会自动发生。
enum class 引入了一个新的范围。
enum Enum
{
Value1,
Value2 // <- both values are accessible without `Enum::`
}
enum class EnumClass
{
Value1,
Value2 // <- values are accessible only with `EnumClass::` prefix
}
Run Code Online (Sandbox Code Playgroud)