enum foo : const unsigned int
{
F,
S,
T
};
void func()
{
foo p;
p = F;
}
上面的代码可以编译,因此基础类型不是const类型吗?
答案 0 :(得分:30)
在enum-base的规范中,const
限定符被忽略;只是希望将整数类型用作枚举类型的基础类型,指定const
(或volatile
)并没有多大意义。
(重点是我的)
冒号(:),后跟一个类型说明符-seq,它命名一个整数类型(如果是cv限定词,则限定词会被忽略),它将用作此函数的固定基础类型枚举类型
根据标准[dcl.enum]/2:
(重点是我的)
type-specifier-seq中的enum-base应命名为整数类型; 任何简历资格将被忽略。