我有一些 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”(一个一个一个或一个范围)将源的所有内容附加w
到目标的末尾,以便所有源的元素保持为空并且它只需要打电话。v
std::move
<utility>
<algorithm>
w.clear();
是否可以让操作员识别右值引用?说:
T & ::operator += (T &, T &&);
或者还有什么我想要的吗?