带有新运算符的Constexpr

问题描述 投票:0回答:1

我使用C++14,我可以像这样使用constexpr吗:

Constexpr Myclass* obj= new Myclass()

我遇到一些编译错误,也尝试谷歌,但所有示例都没有动态分配

c++ cmake c++14
1个回答
0
投票

我使用C++14,我可以像这样使用constexpr吗:

不,你不能。 C++14 中永远不允许对常量表达式中的

new
表达式求值。

在 C++20 中,在某种程度上是这样,但是如果在常量表达式结束之前正确地释放了已分配的内存。在您的示例中,预期的常量表达式是 obj

 的初始化,其中不包括已分配内存的任何释放。

© www.soinside.com 2019 - 2024. All rights reserved.