@[TOC](右值引用[R-value reference] June 17(th),2020)
右值引用可以延长右值的生命。
(1).左值:表达式结束后,依旧存在的对象;可以取到地址;
如:
int i = 0; // i是左值
int &ri = i; // OK 左值引用
std::cout<<&i<<endl; // OK i是左值 可以取地址
class A // define class A
{
};
A a; // a是左值
A &ra=a; // OK 左值引用
std::cout<<&a<<endl; // OK a是左值 可以取地址
(2).右值:表达式结束后,不存在的临时对象;无法取到地址;
如:
int &&ri1 = 0; // OK 0是右值,ri1是对右值的引用
int &&ri2 = 5+8; // OK 表达式(5+8)是右值,ri2是对右值的引用
int &ri3 = 5+8; // ERROR
std::cout<<&0<<endl; // ERROR,不可以对字面量取地址