考虑这样的事情:
class Foo {};
std::vector<Foo> v( 5 );
这样做是否合法:
v.front() = std::move( v.back() );
前提是我之后做这样的事情:
v.pop_back();
更准确地说,我想知道经过std::move()
语义的 xvalue 需要什么。
我知道它需要是可破坏的(显然)。但还有别的吗?假设我会调用或其他一些函数,它可能会在幕后std::vector::insert()
对 ed 值进行一些复制/移动。
这仍然合法吗? std::move()
在我的真实情况下,我有std::vector<std::vector<Foo>>
并且用它做一些事情。
但我不知道从外部仍然使用的std::move()
a是否合法。std::vector
std::vector