从大多数标准库类的状态移开

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。