左值 与 右值
/*左右值
左值: 在内存中有确定位置的对象
右值: 相反, 在内存中没有确定位置
*/
int a = 10;
int& a_ref = a; //ok, 引用必须是左值
int&& a_ref2 = a; //error, a是左值,只能对右值引用
int && a_ref3 = move(a); //ok, 转换a变为右值,然后对其引用
int &a_ref = int(10); //error, 为右值引用
int &&a_ref2 = int(10) //ok, 右值可以引用
/*跟左右值相关的std::forward, 完成转发*/
//参数传递时,中间不改变为右值属性,进行右值传递