在回顾一些旧代码时,我注意到以下两个使用枚举的奇怪结构(两个不同的文件/类/命名空间,只是将它们放在一起):
enum FirstEnum
{
A_CHOICE
,ANOTHER_CHOICE=1
,YET_SOME_OTHER_CHOICE
};
enum SecondEnum
{
FIRST_CHOICE
,SECOND_CHOICE
,THIRD_CHOICE
,DEFAULT_CHOICE=SECOND_CHOICE
};
我认为这两种结构都是错误的。
第一个为其中一个选项赋值,但不为其他选项赋值,这意味着如果添加新选项,事情可能会出错。
在第二种情况下,我们最终得到两个具有相同基础值的枚举元素。
C++ 标准允许这两种结构有什么原因吗?
(使用 Visual Studio 2010)