这个可以吗?
foo.emplace_back(std::move(bar));
是的,因为:
std::move(bar)
强制转换bar
为右值参考.
std::list::emplace_back
获取任意数量的转发引用并使用它们在最后构造一个元素.
std::vector::vector
有一个带有右值引用的重载(6),它可以移动rhs向量的内容而不执行任何副本.
是的,Q中的代码当然可以.即使使用push_back
也没关系:
foo.push_back(std::move(bar));