共用方式為


move

無條件地將它的引數轉型為右值參考,因而表示如果其類型已啟用移動,就可以移動它。

template<class Type>
    typename remove_reference<Type>::type&& move(Type&& Arg) noexcept;

參數

參數

描述

Type

根據傳入 Arg 之引數的類型 (以及參考摺疊規則) 推算的類型。

Arg

要轉型的引數。 雖然 Arg 的類型似乎當做右值參考指定,move 也接受左值引數,因為左值參考可以繫結到右值參考。

傳回值

Arg 做為右值參考,不論它的類型是否為參考類型。

備註

樣板引數 Type 並非要明確指定,而是根據傳入 Arg 之值的類型推算。 Type 的類型是根據參考摺疊規則進一步調整。

move 不會移動它的引數。 相反地,透過無條件地將其引數 (可以是左值) 轉型為右值參考,如果其類型已啟用移動,它可以讓編譯器後續移動 (而不是複製) 傳入 Arg 的值。 如果其類型未啟用移動,會複製它。

如果傳入Arg 的值為左值 (也就是它有名稱或它的位址可以使用),當移動時它會失效。 在移動之後,請不要使用它的名稱或位址來參考傳入 Arg 的值。

需求

標頭:<utility>

命名空間: std

請參閱

參考

<utility>

Lvalues 和 Rvalues