私はいくつかのSTLコンテナタイプを持っていますT
、例えばtemplate< typename F > using T = std::vector< F >;
。次のコードを記述できるようにしたいと思います。
typedef std::string F;
T< F > v(2, "a"), w(3, "b");
v += std::move(w);
std::cout << "v : ";
std::copy(std::begin(v), std::end(v), std::ostream_iterator< F >(std::cout, "|"));
std::cout << std::endl << "w : ";
std::copy(std::begin(w), std::end(w), std::ostream_iterator< F >(std::cout, "|"));
std::cout << std::endl;
そして出力を取得します:
v : a|a|b|b|b|
w : |||
つまり、「-ing」を使用して(1つずつまたは範囲ごとに)ソースのすべてのコンテンツをw
宛先の最後に追加できるようにし、ソースのすべての要素が空のままになり、電話するだけです。v
std::move
<utility>
<algorithm>
w.clear();
演算子に右辺値参照を認識させることは可能ですか?言う:
T & ::operator += (T &, T &&);
それとも私が欲しいものが他にありますか?