领地免费网站程序汇编语言做网站
目录
- 右值引用
 - 移动语义
 - 拷贝构造与移动构造
 
- 万能引用与完美转发
 
右值引用
左值:可以出现在赋值符号的左边和右边,左值可以取地址。
 右值:右值可以出现在赋值符号右边,不能出现在左边,右值不能取地址。
 左值/右值引用就是给左值/右值起别名。
	int x = 1, y = 2;int& r1 = x;//左值引用const int& r2 = x + y;//const左值引用可引用右值int&& rr1 = 10;//右值引用int&& rr2 = x + y;int&& rr3 = move(x);//右值引用可引用move后的左值 
移动语义
移动语义可以直接获取将亡资源,减少拷贝
拷贝构造与移动构造
(实际上在 func 返回时,发生了两次拷贝,这个过程编译器在这里做了优化)
 
 移动构造
 
万能引用与完美转发
完美转发能够保持原来的值属性不变
对于一个Object类,有以下方法定义,若不使用完美转发,对象经过多层调用传递后值属性不能够保持
 
使用万能引用, universal reference
 
 使用完美转发,可保持原属性
 
