&&是c++ 11中的新特性。int&& a表示“a”是一个r值引用。&&通常只用于声明函数的形参。它只有接受一个r值表达式。如果你不知道r值是什么,简单的解释就是它没有内存地址。例如数字6和字符“v”都是r值。int a, a是一个l值,而(a+2)是一个r值。例如:
void foo(int&& a)
{
//Some magical code...
}
int main()
{
int b;
foo(b); //Error. An rValue reference cannot be pointed to a lValue.
foo(5); //Compiles with no error.
foo(b+3); //Compiles with no error.
int&& c = b; //Error. An rValue reference cannot be pointed to a lValue.
int&& d = 5; //Compiles with no error.
}