タグ

designpatternに関するfimbulのブックマーク (2)

  • unique_ptr のデリータ指定 - krustf の雑記

    25日の記事のコメントで default_delete の特殊化で解決する方法を教えていただきました。ありがとうございます。 個人的メモとして今の所知ってる unique_ptr のデリータ指定方法を纏めておきます。 1.関数オブジェクトを渡す 一番メジャーな方法。関数オブジェクトを作って default_delete の代わりに指定します。 struct master_voice_deleter { void operator()( IXAudio2MasteringVoice* voice ) const { voice->DestroyVoice(); } }; std::unique_ptr< IXAudio2MasteringVoice, master_voice_deleter > ptr; 2. default_delete の特殊化で解決 default_delete をテ

    unique_ptr のデリータ指定 - krustf の雑記
  • RAII - Wikipedia

    RAII(Resource Acquisition Is Initialization)は、日語では「リソース取得は初期化である」「リソースの確保は初期化時に」「リソースの取得と初期化」などの意味を持ち、資源(リソース)の確保と解放を、クラス型の変数の初期化と破棄処理に結び付けるというプログラミングのテクニックである。特にC++とD言語で一般的であり、デストラクタをサポートしないC言語などに対する優位性や利便性のうちのひとつとなっている。 RAIIでは、資源の取得をクラス型変数の構築(初期化)時に、また返却を破壊時に行う。特にプログラムの制御フローが自動変数の属するブロックを抜けるとき、その変数のデストラクタが自動的に呼ばれるため、デストラクタを適切に記述したクラス型変数の寿命が終わるとすぐに資源が返却されることが保証できるようになる。これは例外が発生したときでも同様であるため、RAII

  • 1