无名右值引用(unnamed rvalue reference)是指由右值引用相关操做所产生的引用类型。
无名右值引用主要经过返回右值引用的类型转换操做产生, 其语法形式以下:
static_cast<T&&>(t)
标准规定该语法形式将把表达式 t 转换为T类型的无名右值引用。
无名右值引用是右值,标准规定无名右值引用和传统的右值同样具备潜在的可移动性,即它所占有的资源能够被移动(窃取)。
std::move()
因为无名右值引用是右值,借助于类型转换操做产生无名右值引用这一手段,左值表达式就能够被转换成右值表达式。为了便于利用这一重要的转换操做,标准库为咱们提供了封装这一操做的函数,这就是std::move()。
假设左值表达式 t 的类型为T&,利用如下函数调用就能够把左值表达式 t 转换为T类型的无名右值引用(右值,类型为T&&)。
std::move(t)