13
A
回答
17
从n3242草案:
6.4.2 switch语句[stmt.switch]
[...]
2所述的条件应为整体式的,枚举类型,或者存在单个非显式转换函数转换为整数或枚举类型(12.3)的类类型。
7.2枚举声明[dcl.enum]
[...]
enum-key:
enum
enum class
enum struct
这意味着肯定。
7
是,scoped(enum {class,struct})枚举和枚举器在switch语句的上下文中的行为与unscoped(枚举,旧样式)完全相同。
n3242 - 6.4.2.2 [stmt.switch]:
的条件应是整数类型,枚举类型,或一个类类型的的对,其中单个非显式 转换功能一体或枚举类型存在(12.3)。如果条件属于类别类型,则通过调用该转换函数来转换 条件,并且使用转换结果代替本节其余部分的原始条件 。积分促销被执行。
case constant-expression :
其中常数表达式应整数表达式(5.19):switch语句中的任何语句 可以与一种或多种情况下的标记如下进行标记。积分常量表达式隐式转换为开关条件的升级类型。 中没有两个case常量在转换到提升类型的开关条件后,相同的开关应具有相同的值。
在条件的情况下,枚举类型被列出。这包括有范围和无范围的枚举(参见n3242 - 7.2)。
至于案例标签,它们必须是整型常量表达式。这是积分或枚举类型的常量表达式(参见n3242 - 5.19.3)。
相关问题
- 1. 在枚举值之间切换:C++
- 2. 枚举C++类
- 3. 类C++中的枚举声明,在类中枚举的问题
- 4. g ++ C++ 0x枚举类编译器警告
- 5. 与protobuf的枚举替换C++枚举
- 6. 为什么我不能在目标c中切换枚举
- 7. 枚举类型在C++
- 8. 在Postgres中将枚举类型整数转换为枚举
- 9. Java类枚举枚举类
- 10. 字符串转换枚举在C#中
- 11. 转换枚举来枚举
- 12. 枚举在C++
- 13. 在C/gcc中输入枚举类型
- 14. 在接口/基类中的C#枚举?
- 15. 枚举类对象转换
- 16. 切换到XCode6后使用空枚举
- 17. Node.js native枚举中的枚举类型
- 18. 将枚举设置为C#类中的另一个枚举
- 19. 使用类的枚举(C++)
- 20. 枚举类用C型串++
- 21. C#枚举类型安全
- 22. C++ - 映射类型枚举
- 23. 在枚举中枚举
- 24. 为什么我们需要在C#中类型转换枚举
- 25. 压倒一切的枚举基类型
- 26. 将Delphi枚举类型转换为C#中的类似事物#
- 27. 类枚举类
- 28. 在C中传入枚举
- 29. 使用枚举在C#中
- 30. 在C中使用枚举#
@特写投票人:这个题外话是怎么回事? – GManNickG 2011-06-13 07:01:51