2013-03-04 51 views
1

有時候我看到函數聲明是這樣的:C++雙和使用

void foo(vector<some type>&& inputs); 

什麼是使用& &,而不是&的主要原因?

+4

可能兩個最常見的主要原因是允許移動語義和完美的轉發。 – 2013-03-04 05:20:19

+0

@本,是的,它確實看起來像是重複的。儘管我認爲我的答案比那個線索的答案更好! – Dave 2013-03-04 05:23:12

回答

3

這是C++ 11中稱爲右值引用的新事物。

你可以在這裏閱讀一個偉大的介紹給他們:http://thbecker.net/articles/rvalue_references/section_01.html

從本質上講,它說,這將是可以在不導致問題被銷燬的對象的引用,並且被用於優化某些操作,如拷貝構造函數(如果其他對象可以被銷燬,則可以更改爲交換)。