【发布时间】:2018-02-05 14:18:23
【问题描述】:
如何从 constexpr 函数返回对象?根据this 你不能使用new 但那我该怎么做呢?有可能吗?我想使用函数的参数来初始化一个对象并返回它,但似乎无法弄清楚如何。
例子:
struct Test {
int a;
constexpr Test (int b): a(b) {};
Test(const Test& a);
};
Test::Test(const Test& t) {
this->a = t.a;
}
constexpr Test set_test(int a) {
return Test(a);
}
int main() {
return 0;
}
【问题讨论】:
-
为什么你的想法马上跳到
new? -
您想解决的实际问题是什么? 为什么你要使用
constexpr函数和new?这是XY-problem question。 -
函数可以按值返回对象。
-
在这种情况下,请向我们展示一个重现您的错误的最小示例。
-
操作员
new具有放射性。它只能由受过如何将其包裹在混凝土和铅中的培训的专家处理。自 cfront(1984 年)以来,我一直在使用 C++ 编程,而且我认为自 C++98 以来我只使用过一次“new”。那是在编写自定义分配器。