在定义带有基础类型为“bool”的作用域枚举时,明确指定其底层类型为准确的整数类型,例如使用int8_t或std::underlying_type_t来代替bool。以下是示例代码:
#include
enum class MyEnum : std::int8_t
{
Value1 = true,
Value2 = false
};
int main()
{
MyEnum e = MyEnum::Value1;
std::int8_t i = static_cast(e);
// i will now be 1
return 0;
}