说我有一个管理内存的类,因此需要用户定义的特殊成员函数(想象向量或类似的).
考虑move-assignment操作符的以下实现:
Class& operator=(Class&& rhs) { this->~Class(); // call destructor new (this) Class(std::move(rhs)); // call move constructor in-place }
>以这种方式实现移动赋值运算符是否有效?也就是说,以这种方式调用析构函数和构造函数不会违反语言中的任何对象生命周期规则?
>以这种方式实现移动赋值运算符是一个好主意吗?如果没有,为什么不,有更好的规范的方式?