Luc*_*ton 17
从n3242草案:
6.4.2 switch语句[stmt.switch]
[...]
2条件应为整数类型,枚举类型或类型,其中存在单个非显式转换函数为积分或枚举类型(12.3).
7.2枚举声明[dcl.enum]
[...]
enum-key:
enum
enum class
enum struct
Run Code Online (Sandbox Code Playgroud)
这意味着是的.
是的,作用域(enum {class,struct})枚举和枚举器在switch语句的上下文中的行为与unscoped(枚举,旧样式)枚举完全相同.
n3242 - 6.4.2.2 [stmt.switch]:
条件应为整数类型,枚举类型或类型,其中存在单个非显式转换函数为整数或枚举类型(12.3).如果条件是类类型,则通过调用该转换函数来转换条件,并使用转换结果代替本节其余部分的原始条件.执行整体促销.switch语句中的任何语句都可以用一个或多个case标签标记,如下所示:
Run Code Online (Sandbox Code Playgroud)case constant-expression :其中constant-expression应为整数常量表达式(5.19).积分常量表达式隐式转换为切换条件的提升类型.在转换为提升类型的开关条件后,同一开关中的两个外壳常数不应具有相同的值.
在条件的情况下,列出枚举类型.这包括范围和未范围的枚举(参见n3242 - 7.2).
对于案例标签,它们必须是整数常量表达式.这是整数或枚举类型的常量表达式(参见n3242 - 5.19.3).
| 归档时间: |
|
| 查看次数: |
4051 次 |
| 最近记录: |