单纯的左值只能用左值引用和右值只能用右值引用有些局限,在一些情况下,我们也需要对左值去调用右值引用,从而实现将左值里的内容转移到右值中
标准定义:
功能就是将一个左值强制转化为右值,然后实现移动语义
注意:
1.STL中也有另一个move函数,就是将一个范围中的元素搬移到另一个位置。
2.不要轻易对左值move
3.move(对象)以为这将返回的临时变量变成了将亡值,move类似一种标签(原值不变,变返回值)
4.move(对象)后该对象生命周期没有改变。
int main()
{
int a = 1;
int b = 2;
int& ra1 = a;//左值引用左值
int&& ra2 = std::move(a);//右值引用左值(引用的是move后的临时变量(右值))
return 0;
}