コピー不可、移動のみにしたい構造体がありますが、多くの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);
};
この種のムーブ コンストラクタの問題点は次のとおりです。
myStruct::myStruct(myStruct && other){
std::memcpy(this,&other,sizeof(myStruct));
other.calc.release();
calc->rebind(this);
}
どのような問題に直面する可能性があり、これは明確に定義されていますか?