将无效的int值转换为枚举

Tho*_*ing 6 c++ enums

说我有

enum Foo { Foo0, Foo1, Foo2 };
Run Code Online (Sandbox Code Playgroud)

请注意,没有显式声明的Foo常量值为3(它们是0,1和2).

以下是否调用未定义的行为?

Foo yay = (Foo) 3;
Run Code Online (Sandbox Code Playgroud)

特别注意3可能适合内部表示Foo.

Pet*_*ker 8

它定义明确.为了表示值0,12,类型Foo必须至少有两位,这也足以表示3.