将无效的int值转换为枚举

时间:2012-12-13 22:48:22

标签: c++ enums

说我有

enum Foo { Foo0, Foo1, Foo2 };

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

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

Foo yay = (Foo) 3;

请注意,3可能适合Foo的内部表示。

1 个答案:

答案 0 :(得分:8)

它定义明确。为了表示值012,类型Foo必须至少有两位,这足以代表3同样。