【发布时间】:2019-10-17 15:06:44
【问题描述】:
是否可以对这样定义的enum class 的整数值做出任何假设?
enum class
{
ZERO, ONE, TWO
};
【问题讨论】:
-
我相信它们是零索引和增量的,但我不会做任何假设。实现可能是特定于编译器的。
-
@nyarlathotep108 我认为重复仍然适用,因为
enum class仍然是一个枚举声明,并且标准中引用的段落适用于任何枚举声明,包括枚举、枚举类和枚举结构。跨度> -
@nyarlathotep108 范围和非范围枚举的默认值规则由同一段落定义。 Link 编辑:看起来这个链接的段落与重复答案中引用的段落相同。
-
@CaitLANJenner 虽然你在这种情况下是不正确的,但你是对的,最好对 c++ 持怀疑态度,并假设事情是不安全或未定义的,除非你知道其他情况。
-
@nyarlathotep108 我认为重复的规则在这里仍然适用。此外,问题非常相似,具体到枚举的标识符。这个问题链接到另一个问题的事实也是对未来读者的一个很好的暗示,它们的行为相同,并且应该为未来的读者指出一个很好的答案。我认为这将使大多数读者、初学者和专家受益。