2

我有一个定义如下的类

struct X {
    X() : data() {}

    int data;

    enum class Zzz : int { zero, one, two };
    Zzz  zzz;
};
...
X xval;

xval.zzz - is undefined 或 X::Zzz.zero 的值是多少?我知道它对于常规枚举是未定义的,我想知道类型化枚举的行为是否不同。

4

1 回答 1

3

它是未初始化的。

由于支持类型是 anint并且可以包含陷阱表示,因此xval.zzz初始化之前的读取是undefined。(出于兴趣,如果支持类型是 a charunsigned charsigned char,那么行为将仅仅是实现定义的 。)

于 2017-07-07T13:38:46.983 回答