std::experimental::pmr::unsynchronized_pool_resource
From cppreference.com
< cpp | experimental
| ヘッダー <experimental/memory_resource> で定義 |
||
| class unsynchronized_pool_resource : public memory_resource; |
(Library Fundamentals TS) | |
クラスstd::experimental::pmr::unsynchronized_pool_resourceは、以下の特性を持つ汎用メモリリソースクラスです。
- 確保されたメモリを所有し、デストラクタで解放します。これは、確保されたブロックの一部に対して
deallocateが呼び出されなかった場合でも同様です。 - さまざまなブロックサイズの要求に応じるプールのコレクションで構成されます。各プールは、均一なサイズのブロックに分割されるチャンクのコレクションを管理します。
do_allocateへの呼び出しは、要求されたサイズを収容できる最小のブロックを提供するプールにディスパッチされます。- プール内のメモリが枯渇すると、そのプールに対する次の確保要求は、プールを補充するためにアップストリームアロケータから追加のメモリチャンクを確保します。取得されるチャンクサイズは幾何級数的に増加します。
- 最大のブロックサイズを超える確保要求は、アップストリームアロケータから直接処理されます。
- 最大ブロックサイズと最大チャンクサイズは、コンストラクタにstd::experimental::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] |
別のmemory_resourceとの等価性を比較する(virtual protected member function) |