• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    function
    <memory_resource>

    std::pmr::pool_resource::release

    void release();
    

    概要

    管理中の全てのメモリを解放する。

    効果

    必要に応じてthis->upstream_resource()->deallocate()を呼び出し、内部のメモリプール及び上流メモリリソースから割り当てた全てのメモリを解放する。
    deallocate()によって割り当て解除されていないメモリがあったとしても、全てのメモリが解放される。

    以下ではsynchronized_pool_resourceで書いてあるが、unsynchronized_pool_resourceも同様。

    #include <iostream>
    #include <memory_resource>
    
    int main() {
    
      std::pmr::synchronized_pool_resource mr{};
    
      //メモリを確保
      auto* p1 = mr.allocate(sizeof(int), alignof(int));
      auto* p2 = mr.allocate(sizeof(int), alignof(int));
    
      //解放せずにrelease
      mr.release();
      //以降、p1,p2の領域にアクセスしてはならない
    }
    

    出力

    バージョン

    言語

    • C++17

    処理系

    関連項目

    参照