1、左值:具名变量、左值引用、右值引用
int i = 0; //i为左值
int &lref = i; //lref为左值
int && rref = 0; //rref为左值
2、右值:立即数、临时变量
0 //右值
std::string() //生成string类型的临时变量,右值
左值引用可以绑定左值,const左值引用还可以绑定右值
int &lref = i; //左值引用绑定左值
const int &lref = 0; //const左值绑定右值
右值引用只能绑定右值,绑定完毕后右值引用即成为左值
int && rref = 0; //ok
int &&rref2 = rref; //error.右值引用不能绑定左值
std::string &&r_string = std::string(); //ok