C++11 move左值转化为右值
单纯的左值只能用左值引用和右值只能用右值引用有些局限,在一些情况下,我们也需要对左值去调用右值引用,从而实现将左值里的内容转移到右值中
标准定义:
功能就是将一个左值强制转化为右值,然后实现移动语义
注意:
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; }
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。