是否可以声明constexpr指针而不是指向constexpr的指针?

emb*_*edc 6 c++ constexpr c++11

正确吗

constexpr int* p = nullptr;
Run Code Online (Sandbox Code Playgroud)

声明constexpr指针(而不是constexpr int指针)?

这个定义

int* constexpr p = nullptr;
Run Code Online (Sandbox Code Playgroud)

给出编译错误。

Max*_*hof 10

该标准在[dcl.constexpr] / 1中指出,只有变量或函数(及其模板)可以是constexpr

constexpr说明符应仅应用于变量或变量模板的定义或函数或函数模板的声明。

特别地,constexpr它不是类型系统的一部分(尽管确实暗示const),所以指向constexpr的指针在C ++中不是有意义的概念。

将变量标记为的主要原因constexpr是使它们可在常量表达式中使用。但是,也可以使用在常量表达式中使用常量初始化程序初始化的引用和常量整数值。也许参考部分可以帮助您解决正在处理的任何问题?