c++ - 枚举类型中 const 说明符的作用是什么?
问题描述
enum foo : const unsigned int
{
F,
S,
T
};
void func()
{
foo p;
p = F;
}
上面的编译所以底层类型不是 const 类型?
解决方案
const
限定符在enum-base的规范中被忽略;它只是期望将整数类型用作枚举类型的基础类型,指定const
(or volatile
) 没有多大意义。
(强调我的)
冒号 (:),后跟一个类型说明符序列,用于命名一个整数类型(如果它是 cv 限定的,则忽略限定),它将用作此枚举类型的固定基础类型
根据标准,[dcl.enum]/2:
(强调我的)
enum-base的type-specifier-seq应命名为整数类型;忽略任何 cv 限定。
推荐阅读
- twitter-bootstrap - 使用引导程序的 flexbox 包装顺序和组
- swift - ld:找不到框架 FirebaseFirestore
- azure-devops - VSTS - 我可以通过托管代理上的发布配置文件使用文件发布吗?
- java - 用总和 `s` 均匀划分 `n` 双精度,其中每个双精度均小于 1(具有适当的性能)
- sql - 带有 case 语句的 PostgreSQL 函数
- javascript - 在 js 文件中构建一个反应小部件并在 asp .net mvc 项目中重用
- powershell - RunOnce 在启动时未运行
- amazon-web-services - AWS - ELB - Magento2 我如何执行健康检查
- html - 默认选择的选项:未定义的索引
- python - ImportError:没有名为“fabric.contrib”的模块