C++20前,constexpr函数中是不能使用new和delete的。文章来源:https://www.toymoban.com/news/detail-717073.html
C++20进一步的放宽了限制,允许成对的使用new和delete。文章来源地址https://www.toymoban.com/news/detail-717073.html
#include <iostream>
using namespace std;
constexpr int doAdd(int a)
{
int *d = new int[a];
for(int i = 0; i < a; i++)
{
d[i] = i;
}
int res = 0;
for(int i = 0; i < a; i++)
{
res += d[i];
}
delete[] d;
return res;
}
int main()
{
int ret = doAdd(5);
cout<<ret<<endl;
return 0;
}
该程序在C++20之前的编译器上是无法通过编译的,C++20的编译器可以正常的编译。
运行程序输出:
10
到了这里,关于C++(20):constexpr函数中可以成对的使用new/delete的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!