是否正确
ng build --prod --aot --build-optimizer
声明constexpr指针(而不是指向constexpr int的指针)?
此定义
constexpr int* p = nullptr;
出现编译错误。
答案 0 :(得分:9)
该标准在[dcl.constexpr]/1中说,只有变量或函数(及其模板)可以是constexpr
:
constexpr
说明符应仅应用于变量或变量模板的定义或函数或函数模板的声明。
特别是,constexpr
不是类型系统的一部分(尽管它确实暗示着const
),因此,指向constexpr的指针在C ++中不是有意义的概念。
将变量标记为constexpr
的主要原因是使它们成为usable in constant expressions。但是,也可以使用在常量表达式中使用常量初始化程序初始化的引用和常量整数值。也许参考部分可以帮助您解决正在处理的任何问题?