有时我看到函数声明如下:
void foo(vector<some type>&& inputs);
使用&amp;&amp ;;的主要原因是什么?而不是&amp;?
答案 0 :(得分:3)
这是C ++ 11中一个名为rvalue references的新东西。
您可以在此处阅读有关它们的精彩介绍:http://thbecker.net/articles/rvalue_references/section_01.html
本质上,它表示它将是一个可以在不引起问题的情况下被销毁的对象的引用,并且用于优化某些操作,例如复制构造函数(如果可以销毁其他对象,则可以为交换更改)