1
标题说的很多。考虑下面这个例子:在没有复制elision的情况下,是否保证在析构函数之前调用复制/移动构造函数?
MyClass func()
{
MyClass myInstance;
return myInstance;
}
int main()
{
auto myInstance = func();
}
在没有复制省略的,是复制或移动的MyClass
保证构造函数的析构函数调用func()
回报myInstance
之前叫什么名字?我想像一个像std::shared_ptr
这样的类在使用价值返回时会使用这样的属性。
另外,依靠这种行为有没有陷阱?