2
我有一個函數,看起來是這樣的,它由movesemantics返回不可複製類:析構函數布展構造函數之前叫什麼名字?
MyClass&& MyFunction() {
MyClass myClass;
do some stuff;
return std::move(myClass);
}
然後它是由
main() {
MyClass myClass = MyFunction();
}
類利用boost::noncopyable
爲copyprevention訪問。它有構造函數,移動構造函數和移動賦值。 我的問題是,析構函數獲取移動構造函數之前調用。我做錯了什麼?
我想你明確地返回右值。 –
是的,這是預期的早。後來發現這不完全正確。看[想要速度?通過值傳遞](http://cpp-next.com/archive/2009/08/want-speed-pass-by-value/)。 –
在這種情況下,編譯器總是會移動'myClass'。 – Puppy