在C+中打开enum类+;0x C++中的新“Enm类”声明允许切换新的派生类枚举吗?< /P>

在C+中打开enum类+;0x C++中的新“Enm类”声明允许切换新的派生类枚举吗?< /P>,c++,enums,c++11,C++,Enums,C++11,我问的是标准说了些什么,而不是编译器支持。来自n3242草案: 6.4.2开关语句[stmt.switch] [……] 2条件应为整型、枚举型或类类型,其中单个非显式 存在整数或枚举类型的转换函数(12.3) 7.2枚举声明[dcl.enum] [……] 这意味着是。是,在switch语句的上下文中,作用域(enum{class,struct})枚举数和枚举数的行为与非作用域(enum,旧式)枚举数的行为完全相同 n3242-6.4.2.2[标准开关]: 条件应为整型、枚举型或类类型,其中单个非

我问的是标准说了些什么,而不是编译器支持。

来自n3242草案:

6.4.2开关语句[stmt.switch]

[……]

2条件应为整型、枚举型或类类型,其中单个非显式 存在整数或枚举类型的转换函数(12.3)

7.2枚举声明[dcl.enum]

[……]

这意味着是。

是,在switch语句的上下文中,作用域(enum{class,struct})枚举数和枚举数的行为与非作用域(enum,旧式)枚举数的行为完全相同

n3242-6.4.2.2[标准开关]:

条件应为整型、枚举型或类类型,其中单个非显式 存在整数或枚举类型的转换函数(12.3)。如果条件为类类型,则 通过调用该转换函数来转换条件,并使用转换结果代替 本节剩余部分的原始条件。执行整体促销。任何声明 在switch语句中,可以使用一个或多个case标签进行标记,如下所示:

case constant-expression :
其中,常数表达式应为积分常数表达式(5.19)。整型常量表达式隐式转换为开关条件的提升类型。中没有两个case常量 转换为升级类型的开关条件后,同一开关应具有相同的值

对于条件,将列出枚举类型。这包括作用域和非作用域枚举(参见n3242-7.2)


至于大小写标签,它们必须是整型常量表达式。这是整型或枚举型的常量表达式(请参见n3242-5.19.3)。

@Close voter:这是怎么离题的?
case constant-expression :