调用不带 new 关键字的构造函数

Call to constructors without the new keyword

本文关键字:构造函数 关键字 new 调用      更新时间:2023-10-16

我遇到了这个问题,其中成员函数 none() 在没有 new 运算符的情况下调用构造函数。https://github.com/3rdparty/stout/blob/master/include/stout/result.hpp

但是我不明白,如果不使用 new 关键字,如何分配内存?另外,返回对象的类型是什么?

如果不复制您担心的确切行,我可能会偏离目标,但是如果您担心的是这样的代码:

T f() {
   return T();
}

这不是对构造函数的调用,而是创建一个临时的,在这种情况下是值初始化的。内存在堆栈中本地分配(如果有,返回值优化应避免它)。