constinit是P1143中提出的C ++ 20中的新关键字和说明符。
标准中提供了以下示例:
const char * g() { return "dynamic initialization"; }
constexpr const char * f(bool p) { return p ? "constant initializer" : g(); }
constinit const char * c = f(true); // OK
constinit const char * d = f(false); // ill-formed
Run Code Online (Sandbox Code Playgroud)
我想到了几个问题:
什么constinit意思 为什么要引入?在什么情况下我们应该使用它?
它使变量不可变吗?是暗示const还是constexpr?
变量可以是const和constinit吗?怎么样constexpr和constinit?
可以将说明符应用于哪些变量?为什么我们不能将其应用于static非thread_local变量?
有性能优势吗?
该问题旨在作为 …