C++ 未初始化的枚举器默认值

C++ 未初始化的枚举器默认值,c++,c++11,language-lawyer,C++,C++11,Language Lawyer,假设我们有以下声明 enum visibility { On = 0, Off = 1, maxVisibility }; 是C++11/C++0x标准中的maxVisibility枚举器2的保证值吗?是的,它是保证值 §7.2.2 如果第一个枚举数没有初始值设定项,则相应常量的值为零。没有初始值设定项的枚举数定义为枚举数提供通过将前一个枚举数的值增加一个而获得的值 我还建议您使用强类型枚举:枚举类可见性{…},因为您可以使用c++11功能。顺便说一下,c++0x不是标准,

假设我们有以下声明

enum visibility
{
   On  = 0,
   Off = 1,
   maxVisibility
};
是C++11/C++0x标准中的
maxVisibility
枚举器
2
的保证值吗?

是的,它是保证值

§7.2.2

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


我还建议您使用强类型枚举:
枚举类可见性{…}
,因为您可以使用c++11功能。顺便说一下,c++0x不是标准,它在成为标准之前是c++11的非正式名称。但我只是吹毛求疵。@ChristianRau C++11是一个同样非官方的名字。。。它只是比ISO/IEC 14882:2011更容易打字和记忆。@Lundin嗯,的确如此。如果我不能履行随之而来的对完美精确性的责任,我真的应该停止吹毛求疵因此,您甚至可以删除显式的
0
1