- リソースを管理するクラスをつくるとき、デストラクタが呼ばれると勘違いしてムーブ代入をdefaultにしていたら、リソースがリークしていた
- デフォルトのムーブ代入はメンバー変数を個々にムーブするだけなので、ムーブ先でもともと持っているリソースはきちんと解放してやらなければいけなかった
- こうならないためにもRule of FiveとRule of Zeroに従うこと
- 簡単に言うと「デストラクタ・コピーコンストラクタ・ムーブコンストラクタ・コピー代入・ムーブ代入は、すべて書かないか、すべて書くか、のどちらかにしなさい」という教え
- メンバー変数が大量にあるクラスではCopy-And-Swapイディオムでムーブを書くと楽できる
ムーブの行方
·
Updated:
Share this post on: