可能重複:
What constitutes a valid state for a 「moved from」 object in C++11?究竟是什麼需要的已移動的xvalue?
考慮這樣的事情:
class Foo {};
std::vector<Foo> v(5);
是否合法做這樣的事情:
v.front() = std::move(v.back());
前提是我不喜歡這樣算賬:
v.pop_back();
更確切地說我想知道什麼是必需的經歷std::move()
語義的x值。
我知道它需要被破壞(顯然)。但是別的嗎?假設我會打電話std::vector::insert()
或其他一些功能,可能會在幕後複製/移動編輯值。
那還合法嗎?
在我的真實情況下,我有std::vector<std::vector<Foo>>
並做了什麼。
但我不知道是否合法std::move()
從std::vector
仍然由外部std::vector
使用。
感謝您的參考 – iolo