将无效的 int 值强制转换为枚举
Cast invalid int value to enum
假设我有
enum Foo { Foo0, Foo1, Foo2 };
请注意,没有显式声明的 Foo 常量具有值 3(它们是 0、1 和 2)。
以下是否调用未定义的行为?
Foo yay = (Foo) 3;
特别要注意的是,3
可能适合Foo
的内部表示。
它的定义很好。为了表示值0
、1
和2
,类型Foo
必须至少有两个位,这也足以表示3
。
相关文章:
- 错误:从"int"到枚举c++的转换无效
- 将作用域枚举转换为基础类型
- 枚举类的 C 样式强制转换到基础类型 char 的引用
- 用于 boost::p roperty_tree 的通用枚举转换器
- 在编译时将强类型枚举器转换为其基础类型?
- 将整数值转换为以枚举为基础的字符串
- 如何在没有映射的情况下在枚举和字符串之间进行转换?
- C++枚举类 std::size_t 隐式转换
- 安全地将枚举类从基础类型转换
- SWIG-将C++枚举转换为Python枚举
- 如果 int 是"not within the enums range",为什么将 int 转换为强类型枚举会编译?
- 如何编写模板以转换为基于整数/枚举的模板化类型
- 将指向类型化/大小的枚举的指针转换为指向基础类型的指针是否安全?
- C++枚举类:强制转换为不存在的条目
- 如何将C++代码中的枚举转换为 C
- 为什么这个枚举不转换为 int?
- 失败的证明转换字符串到枚举类
- 枚举类的重载强制转换运算符
- 返回强制转换枚举值C++的函数
- 转换枚举中整数的安全方法