c++11: 枚举成员初始化
c++11: enum member initialization
我有一个class定义如下
struct X {
X() : data() {}
int data;
enum class Zzz : int { zero, one, two };
Zzz zzz;
};
...
X xval;
xval.zzz 的值是多少 - 未定义或 X::Zzz.zero ?我知道它对于常规枚举是未定义的,我想知道类型化枚举的行为是否不同。
未初始化。
由于支持类型是 int
并且可以包含陷阱表示,因此 xval.zzz
在初始化之前的读数是 undefined。 (出于兴趣,如果支持类型是 char
、unsigned char
或 signed char
,则行为将仅仅是 实现定义 。)
我有一个class定义如下
struct X {
X() : data() {}
int data;
enum class Zzz : int { zero, one, two };
Zzz zzz;
};
...
X xval;
xval.zzz 的值是多少 - 未定义或 X::Zzz.zero ?我知道它对于常规枚举是未定义的,我想知道类型化枚举的行为是否不同。
未初始化。
由于支持类型是 int
并且可以包含陷阱表示,因此 xval.zzz
在初始化之前的读数是 undefined。 (出于兴趣,如果支持类型是 char
、unsigned char
或 signed char
,则行为将仅仅是 实现定义 。)