Skip to content
Blog
Go back

ムーブの行方

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

Share this post:

Previous Post
DirectX12仕様メモ
Next Post
消えたコンストラクタを追え