std::pmr::unsynchronized_pool_resource
提供: 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 を構築します (パブリックメンバ関数) | |
[仮想] |
unsynchronized_pool_resource を破棄し、確保されたメモリをすべて解放します (仮想パブリックメンバ関数) |
operator= [削除] |
コピー代入演算子は削除されています。 unsynchronized_pool_resource はコピー可能ではありません (パブリックメンバ関数) |
パブリックメンバ関数 | |
確保されたメモリをすべて解放します (パブリックメンバ関数) | |
上流メモリリソースを指すポインタを返します (パブリックメンバ関数) | |
このリソースのプール処理の動作を制御するオプションを返します (パブリックメンバ関数) | |
プロテクテッドメンバ関数 | |
[仮想] |
メモリを確保します (仮想プロテクテッドメンバ関数) |
[仮想] |
メモリをプールに返却します (仮想プロテクテッドメンバ関数) |
[仮想] |
別の std::pmr::memory_resource と等しいかどうか比較します (仮想プロテクテッドメンバ関数) |