目录
资料很多,不重新一遍了。只说核心
& 来表示左值引用,顾名思义:左值的引用。
那么右值能不能引用?
C++11 之后,&& 来表示右值引用,顾名思义:右值的引用。
C++11 之前,也可以绕弯引用右值,即用 const,举个例子:
int &var = 100;
这样编译不过的,100(右值)是个立即数无法取地址,因为立即数在寄存器中没在内存中。我们改用const:
const int &var = 100;
这样就可以,因为 const 会让内存上产生了临时变量保存 100。但是问题来了,const 修饰的变量不可修改。那么右值引用的作用就显现了,可以修改!
常用的一个 std::move 函数可以将左值强制转换为右值,并没有“移动”的操作。转换为右值后就可以被右值引用绑定。