首先分清左值和右值:
左值:有名字的,可以取地址的,非临时的就是左值。
右值:没有名字的,不可取地址的,临时的就是右值。
左值引用的操作方法是 type& a=b,右边的是一个左值,左值引用在声明时必须进行初始化的操作。
右值引用的操作方法是type&& a=字面值或其它类型的右值,实现的方法是将本来保存在寄存器当中的右值,
复制到了内存当中,使其能够进行取地址的操作。类似常量引用,但是常量引用只能进行读操作,而右值引
用可以进行读写的操作。
使用右值引用可以将临时对象的资源直接进行移动,而不需要重新申请内存然后在进行内存的复制,提高了
了内存的使用效率。
原文:https://www.cnblogs.com/wangkaia/p/13307278.html