【问题标题】:Can I safely move assign to `this`?我可以安全地将分配转移到`this`吗?
【发布时间】:2022-06-10 21:54:38
【问题描述】:

我想知道通过在this 上使用移动赋值运算符来编写某个类Areset 方法是否安全。

所以不是

A a{};
... // Do something with a
a = A();

如果我能写

A a{};
... // Do something with a
a.reset();

在哪里

void A::reset()
{
  *this = A();
}

我在 godbolt (https://godbolt.org/z/Edc3TT1aT) 上玩了一下,结果调试程序集与本示例中的 gdb 几乎相同。

【问题讨论】:

  • 是的,这很安全。 (以类的operator= 中的任何错误为模,并且该类在其成员变量中具有适当的资源所有权管理。)

标签: c++ move-semantics


猜你喜欢
  • 2011-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2022-01-02
  • 2020-05-06
  • 1970-01-01
相关资源
最近更新 更多