根据cppreference.com,move
有签名
template< class T >
typename std::remove_reference<T>::type&& move( T&& t ) noexcept;
为什么它需要一个右值引用T&& t
作为它的参数?
另外,当我尝试以下代码时
void foo(int&& bar) {
cout << "baz" << endl;
}
int main(){
int a;
foo(a);
}
我从编译器得到一个错误“右值引用不能绑定到左值”
到底是怎么回事?我很混乱。