1

時々私は関数がこのように宣言するのを見ます:

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

&の代わりに&&を使用する主な理由は何ですか?

4

1 に答える 1

3

これは右辺値参照と呼ばれる C++11 の新しい機能です。

ここでそれらの優れた紹介を読むことができます: http://thbecker.net/articles/rvalue_references/section_01.html

基本的に、これは問題を引き起こさずに破棄できるオブジェクトへの参照であり、コピー コンストラクターなどの特定の操作を最適化するために使用されます (他のオブジェクトを破棄できる場合、スワップ用に変更できます)。

于 2013-03-04T05:21:16.447 に答える