【发布时间】:2022-06-10 21:54:38
【问题描述】:
我想知道通过在this 上使用移动赋值运算符来编写某个类A 的reset 方法是否安全。
所以不是
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