C++ 語言/間接/右值引用/移動語義
外觀
傳統上,一個類可以提供“複製建構函式”CRType::CRType(const CRType& x) {...}和“複製賦值運算子”CRType& CRType::operator=(const CRType& x) {...}。這些將在多種情況下使用,例如透過CRType oDesti(oSource);定義oDesti(其中oSource已經定義為CRType物件)。如果CRType是某種自定義容器,那麼這兩個函式通常透過深度複製所有包含的專案來實現,這在計算上可能是昂貴的。
在現代軟體中,這些由程式設計“移動建構函式”和“移動賦值運算子”函式補充,這些函式透過僅傳遞有效負載控制代碼來實現。函式過載可以區分移動建構函式和複製建構函式,因為移動建構函式引數的型別是“右值引用”CRType&&。