無名右值引用(unnamed rvalue reference)是指由右值引用相關操做所產生的引用類型。
無名右值引用主要經過返回右值引用的類型轉換操做產生, 其語法形式以下:
static_cast<T&&>(t)
標準規定該語法形式將把表達式 t 轉換爲T類型的無名右值引用。
無名右值引用是右值,標準規定無名右值引用和傳統的右值同樣具備潛在的可移動性,即它所佔有的資源能夠被移動(竊取)。
std::move()
因爲無名右值引用是右值,藉助於類型轉換操做產生無名右值引用這一手段,左值表達式就能夠被轉換成右值表達式。爲了便於利用這一重要的轉換操做,標準庫爲咱們提供了封裝這一操做的函數,這就是std::move()。
假設左值表達式 t 的類型爲T&,利用如下函數調用就能夠把左值表達式 t 轉換爲T類型的無名右值引用(右值,類型爲T&&)。
std::move(t)