右辺値参照は主に大きいオブジェクトを戻り値にするときに使う
vector<int> foo() { vector<int> v; ... return v; } int main() { vector<int>&& v = foo(); return 0; }
だが、実際はライブラリ(クラス)の中で右辺値参照を処理することが多いだろう
右辺値参照の追加にともない、標準ライブラリは総書き換えされるので
vectorのコピーコンストラクタと=演算子は以下のようになる
template <class T, class Allocator=std::allocator<T>> class vector { public: vector(const vector&); vector(vector&&); vector& operator=(const vector&); vector& operator=(vector&&); };
なので、vectorを使う側はとくに右辺値参照を気にしなくていい
vector<int> v = foo();