名前空間
変種
操作

std::pmr::unsynchronized_pool_resource

From cppreference.com
< cpp‎ | memory
 
 
メモリ管理ライブラリ
(説明用*)
未初期化メモリのアルゴリズム
(C++17)
(C++17)
(C++17)
制約付き未初期化
メモリアルゴリズム
Cライブラリ

アロケータ
メモリリソース
pmr::unsynchronized_pool_resource
(C++17)
ガベージコレクションのサポート
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
(C++11)(C++23まで)
未初期化ストレージ
(C++20まで*)
(C++20まで*)
明示的な生存期間管理
 
 
ヘッダ <memory_resource> で定義
class unsynchronized_pool_resource : public std::pmr::memory_resource;
(C++17以降)

クラスstd::pmr::unsynchronized_pool_resourceは、以下の特性を持つ汎用メモリリソースクラスです。

  • 確保されたメモリを所有し、デストラクタで解放します。これは、確保されたブロックの一部に対してdeallocateが呼び出されなかった場合でも同様です。
  • 異なるブロックサイズの要求に応えるための「プール」のコレクションで構成されています。各プールは、均一なサイズのブロックに分割される「チャンク」のコレクションを管理します。
  • do_allocateへの呼び出しは、要求されたサイズを収容する最小のブロックを提供するプールにディスパッチされます。
  • プール内のメモリが枯渇すると、そのプールに対する次の確保要求は、プールを補充するためにアップストリームアロケータから追加のメモリチャンクを確保します。取得されるチャンクサイズは幾何級数的に増加します。
  • 最大のブロックサイズを超える確保要求は、アップストリームアロケータから直接処理されます。
  • 最大ブロックサイズと最大チャンクサイズは、コンストラクタにstd::pmr::pool_options構造体を渡すことで調整できます。

unsynchronized_pool_resourceはスレッドセーフではなく、複数のスレッドから同時にアクセスすることはできません。複数のスレッドからのアクセスが必要な場合は、synchronized_pool_resourceを使用してください。

[編集] メンバ関数

unsynchronized_pool_resourceを構築します
(public member function) [編集]
unsynchronized_pool_resourceを破棄し、割り当てられたすべてのメモリを解放します
(virtual public member function) [編集]
operator=
[削除]
コピー代入演算子は削除されています。unsynchronized_pool_resourceはコピー代入可能ではありません
(public member function) [編集]
公開メンバ関数
確保されたすべてのメモリを解放します。
(public member function) [編集]
アップストリームメモリリソースへのポインタを返します。
(public member function) [編集]
このリソースのプーリング動作を制御するオプションを返します。
(public member function) [編集]
Protected member functions
[virtual]
メモリを割り当てる
(virtual protected member function) [編集]
メモリをプールに返します。
(virtual protected member function) [編集]
[virtual]
別のstd::pmr::memory_resourceとの等価比較
(virtual protected member function) [編集]
English 日本語 中文(简体) 中文(繁體)