Ijaz Ahmad Asked: 2024-10-04 14:43:52 +0800 CST 为什么我可以定义一个 constinit 的 std::string 实例?如果对象需要动态初始化,constinit 不是被禁止的吗? 16 cppreference提到,如果初始化包含动态初始化部分,则在 C++20 中使用 constinit 时程序格式不正确。 我只是想知道为什么下面的代码可以编译: constinit std::string str = "Hello"; 由于std::string该类涉及用于存储字符的动态内存分配,因此这似乎是矛盾的。由于动态部分,这不应该被禁止吗? 尝试使用标志进行编译-std=C++20,程序编译正常,但事实并非如此。 c++