1
根據http://en.cppreference.com/w/cpp/language/move_constructor; 「A類可以有多個移動構造,例如既T::T(const T&&)
和T::T(T&&)
」移動構造函數採用constans rvalue的意義是什麼?
當將一個想通過恆定的右值到移動構造函數?
根據http://en.cppreference.com/w/cpp/language/move_constructor; 「A類可以有多個移動構造,例如既T::T(const T&&)
和T::T(T&&)
」移動構造函數採用constans rvalue的意義是什麼?
當將一個想通過恆定的右值到移動構造函數?
簡短的回答是「從不」。
但是,你確實可以寫這樣的功能:
Foo const f();
現在像Foo x = f();
會使用Foo const &&
構造函數(如果可用)。但它也會很好地綁定到Foo const &
構造函數,並且由於兩個引用都是常量,所以實際上不需要右值版本。
特別是,關於該構造函數的「移動」是多餘的,因爲正如我們所建立的那樣,參考是不變的。
是迂腐的,引用const的事實並不妨礙你移動一些「可變」資源。 (當然,即使在使用'const X &&'時,它仍然被稱爲12.8/3中的'移動構造函數') – Cubbi