枚举类型中const说明符的功能是什么?

时间:2019-06-30 10:48:18

标签: c++ c++11 enums const language-lawyer

enum foo : const unsigned int
{
    F,
    S,
    T
};

void func()
{
    foo p;
    p = F;
}

上面的代码可以编译,因此基础类型不是const类型吗?

1 个答案:

答案 0 :(得分:30)

enum-base的规范中,const限定符被忽略;只是希望将整数类型用作枚举类型的基础类型,指定const(或volatile)并没有多大意义。

(重点是我的)

  

冒号(:),后跟一个类型说明符-seq,它命名一个整数类型(如果是cv限定词,则限定词会被忽略),它将用作此函数的固定基础类型枚举类型

根据标准[dcl.enum]/2

(重点是我的)

  

type-specifier-seq中的enum-base应命名为整数类型; 任何简历资格将被忽略