我使用C++14,我可以像这样使用constexpr吗:
constexpr
constexpr Myclass* obj = new Myclass()
字符串我得到一些编译错误,也试图谷歌,但所有的例子没有动态分配。
hc8w905p1#
我使用C14,我可以这样使用constexpr吗:不你不能C14中不允许在常量表达式中计算new表达式。在C++20中,在某种程度上是这样的,但是 * 只有 * 在常量表达式结束 * 之前,你正确地释放了分配的内存 *。在您的示例中,预期的常量表达式是obj的初始化,它不包括对已分配内存的任何释放。
new
obj
1条答案
按热度按时间hc8w905p1#
我使用C14,我可以这样使用constexpr吗:
不你不能C14中不允许在常量表达式中计算
new
表达式。在C++20中,在某种程度上是这样的,但是 * 只有 * 在常量表达式结束 * 之前,你正确地释放了分配的内存 *。在您的示例中,预期的常量表达式是
obj
的初始化,它不包括对已分配内存的任何释放。