阅读完这篇文章:http://www.cprogramming.com/c++11/rvalue-references-and-move-semantics-in-c++11.html,我还是无法理解当你编写函数时,需要以左值或右值引用作为参数的情况,例如这样:
void printReference (const string& str)
{
cout << str;
}
void printReference (string&& str)
{
cout << str;
}
为什么第一个printReference函数可以接受任何参数,无论是左值还是右值,以及左值或右值是否可变。然而,在第二个printReference函数中,只允许传递可变的右值。
也许我的理解有误,有人可以帮我弄清楚吗。
然而,在第二个重载函数 printReference 接受一个右值引用参数的情况下,它将接收除可变右值引用之外的所有值。
你知道它的意思吗? - sydridgm