2011-08-07 121 views

回答

16

从n3290,5.2.9静态施放[expr.static.cast]:

10整型或枚举类型的值可以显式转换 到枚举类型。如果原始值 在枚举值(7.2)的范围内,则值不变。否则, 结果值未指定(可能不在该范围内)。 [...]

枚举类型既包括被声明用enum和那些声明为enum classenum struct那些类型,其标准分别调用无作用域枚举和作用域枚举。在7.2枚举声明[dcl.enum]中有更详细的描述。

枚举类型的不会与其枚举器混淆。在你的情况下,由于枚举你宣布都有int为它们的基础类型的值的范围是相同的int:从INT_MININT_MAX(含)。

由于42的类型为int,并且该行为显然是int的值。

+0

啊,我误解了“枚举值”的含义。谢谢。 – ecatmur

相关问题