为什么枚举声明会被标记为const?

时间:2013-07-23 08:45:43

标签: c++ enums const

我在我工作的项目中看到了这个构造:

const enum SomeEnum
{
    val0,
    val1,
    val2
};

这里const的目的是什么?

2 个答案:

答案 0 :(得分:13)

什么都没有。实际上,根据G ++,这是一个编译器错误:

error: qualifiers can only be specified for objects and functions

然而,在C中它是允许的,但没用。海湾合作委员会说:

warning: useless type qualifier in empty declaration

问题是const仅适用于对象(变量)和成员函数,但不适用于基本类型。

答案 1 :(得分:11)

它不会对您的代码产生影响,但在这种情况下会出现:

const enum SomeEnum
{
    val0,
    val1,
    val2
} VAL0 = val0;

此处,VAL0将是const变量(值val0)。但是TBH并没有多大用处。