未初始化的枚举器默认值

dei*_*mus 5 c++ language-lawyer c++11

假设我们有以下声明

enum visibility
{
   On  = 0,
   Off = 1,
   maxVisibility
};
Run Code Online (Sandbox Code Playgroud)

是C++ 11/C++ 0x标准中maxVisibility枚举数的保证值2吗?

bil*_*llz 8

是的,它是有保证的.

§7.2.2

如果第一个枚举器没有初始化器,则相应常量的值为零.没有初始值设定项的枚举器定义为枚举数提供了通过将前一个枚举数的值增加1而获得的值.