从大多数标准库类的状态移开
Version >= C++ 11
移动后,所有标准库容器都处于有效但未指定的状态。例如,在以下代码中,v2
将在移动后包含 {1, 2, 3, 4}
,但不保证 v1
为空。
int main() {
std::vector<int> v1{1, 2, 3, 4};
std::vector<int> v2 = std::move(v1);
}
有些类确实有一个精确定义的移动状态。最重要的情况是 std::unique_ptr<T>
,它被保证在移动后为 null。