提问人:abura 提问时间:6/11/2020 更新时间:6/11/2020 访问量:27
将移动构造函数委派到适当的复制构造函数是否安全?
Is it safe to harness move constructor delegation to appropriate copy constructor?
问:
为了避免代码重复,我想将移动构造函数和移动赋值运算符分别委托给适当的复制构造函数和赋值运算符:
struct A
{
A() {...} //default constructor
A(const A& a) {...} //copy constructor
A(A&& a):A(static_cast<const A&>(a)) //move constructor
{
a.reset();
}
A& operator =(const A& a) //assignment operator
{
if (this != &a)
{
...
}
return *this;
}
A& operator =(A&& a) //move assignment operator
{
if (this != &a)
{
this->operator=(static_cast<const A&>(a));
a.reset();
}
return *this;
}
void reset() {...}
}
这是一种安全的技术吗? 这里有什么陷阱或警告吗?
答: 暂无答案
评论
a.reset