【问题标题】:What happens to the moved-from object after std::move() is called? [duplicate]调用 std::move() 后移出的对象会发生什么? [复制]
【发布时间】:2014-12-31 12:51:13
【问题描述】:

我已经读过,我们应该确保在移动对象之前没有用户使用已移动对象。我想知道为什么会这样? 调用 std::move() 后移出的对象是否被销毁?如果没有,在调用 std::move() 之后,被移动的对象会发生什么?

【问题讨论】:

标签: c++


【解决方案1】:

这取决于如何使用std::move() 的结果。 move 本身不会对对象做任何事情。

【讨论】:

  • 公平点。声明std::move(std::string("Hello")); 是合法的,但不会移动任何东西。
【解决方案2】:

对象没有被破坏,但它处于一种状态,唯一可能的事情就是破坏它。

【讨论】:

    【解决方案3】:

    它必须处于可以安全销毁的状态,但是,AFAIK,它不必可用于其他任何东西。

    【讨论】:

      猜你喜欢
      • 2015-09-06
      • 2019-04-23
      • 1970-01-01
      • 2020-11-16
      • 2020-10-18
      • 2020-10-19
      • 2015-03-04
      • 1970-01-01
      • 2014-01-17
      相关资源
      最近更新 更多