绑定到左值的右值引用问题
程序代码:
int &&rref = 8; //右值引用 int &&r2 = rref; //(a) // error, rref是个左值 class A { public: A()=default; A(A&& a) {/*...*/}; //(b) //... }; A aa = std::move(A()); //(c)问题描述
std::move 返回的右值引用, 表达式(a)实际调用移动构找函数(b)
相当与,移动构造函数的参数右值引用a绑定到std::move 返回的右值引用上,
可是我们知道,右值引用是不能绑定到左值上的
上述调用是可行的,但是为什么右值引用可以绑定到右值引用上呢?