std::pmr::unsynchronized_pool_resource
From cppreference.com
| ヘッダ <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) | |
| [virtual] |
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] |
メモリをプールに返します。 (virtual protected member function) |
| [virtual] |
別のstd::pmr::memory_resourceとの等価比較 (virtual protected member function) |