相关疑难解决方法(0)

用memcpy移动构造函数

我有一个结构,我想要不可复制,只能移动,但因为它包含大量的POD,写移动构造函数会很长,忘记变量将很难调试.例:

struct myStruct{
    int a,b,c,d;
    double e,f,g,h;
    std::complex<double> value1,value2;

    std::unique_ptr<Calculator> calc;

    myStruct(){}
    myStruct(const myStruct &)=delete;
    myStruct(myStruct && other);
};
Run Code Online (Sandbox Code Playgroud)

这种移动构造函数会出现什么问题:

myStruct::myStruct(myStruct && other){
    std::memcpy(this,&other,sizeof(myStruct));
    other.calc.release();
    calc->rebind(this);
}
Run Code Online (Sandbox Code Playgroud)

我可以面对什么问题,这是明确定义的吗?

c++ move-constructor c++11

0
推荐指数
1
解决办法
1100
查看次数

标签 统计

c++ ×1

c++11 ×1

move-constructor ×1