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。 (出于兴趣,如果支持类型是 charunsigned charsigned char,则行为将仅仅是 实现定义 。)