左值引用只能绑定左值
const 左值引用可以绑定左值和右值
右值引用只能绑定右值
const 右值引用只能绑定右值,但不能绑定左值
引用类型的变量,在定义时需要赋初值,且不能用NULL 赋初值
万能引用即可绑定左值也可以绑定右值:
必须要在函数模板中,必须有类型推到
//万能引用
template<class T>
void test(T &&t) {
}
// 加上参数const修饰后,由万能引用变回右值引用
template<class T>
void test2(const T &&t)
{
}
int &&a = 1234;//int &&a 是右值引用,但变量a是左值
int &b = a;//左值引用绑定
std::move() //左值转右值