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

履歴 編集

function
<memory_resource>

std::pmr::pool_resource::release(C++17)

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

処理系

関連項目

参照