今天我找到了一些我以前没见过的语法。
enum MyEnum{ FOO = 0, ABA, DADA, }
....
MyEnum test;
std::uint8_t some_number(3);
test = MyEnum(some_number);
这到底发生了什么? enum将被视为一个类?或者这只是演员?
答案 0 :(得分:3)
test = MyEnum(some_number);
此处some_number
显式转换为枚举类型。除非该值在枚举范围内,否则这种转换的结果是未定义的。
答案 1 :(得分:0)
MyEnum被声明为具有三个值:
FOO: 0
ABA: 1
DADA: 2
std::uint8_t
some_number
初始化为值3
。此值不会转换为MyEnum
值。由于不存在从值3
到MyEnum
值的映射,因此您可能会在Enum
test
值