【发布时间】:2014-12-31 12:51:13
【问题描述】:
我已经读过,我们应该确保在移动对象之前没有用户使用已移动对象。我想知道为什么会这样? 调用 std::move() 后移出的对象是否被销毁?如果没有,在调用 std::move() 之后,被移动的对象会发生什么?
【问题讨论】:
标签: c++
我已经读过,我们应该确保在移动对象之前没有用户使用已移动对象。我想知道为什么会这样? 调用 std::move() 后移出的对象是否被销毁?如果没有,在调用 std::move() 之后,被移动的对象会发生什么?
【问题讨论】:
标签: c++
这取决于如何使用std::move() 的结果。 move 本身不会对对象做任何事情。
【讨论】:
std::move(std::string("Hello")); 是合法的,但不会移动任何东西。
对象没有被破坏,但它处于一种状态,唯一可能的事情就是破坏它。
【讨论】:
它必须处于可以安全销毁的状态,但是,AFAIK,它不必可用于其他任何东西。
【讨论】: