我有一个函数,大概长这样,它通过移动语义返回一个不可复制的类:
MyClass&& MyFunction() {
MyClass myClass;
do some stuff;
return std::move(myClass);
}
然后它被访问
main() {
MyClass myClass = MyFunction();
}
该类利用
boost::noncopyable
实现复制预防。它具有构造函数、移动构造函数和移动赋值。我的问题是,在移动构造函数之前,析构函数被调用了。我做错了什么?
myClass
。 - Puppy