Namespaces
Variants

std::pmr:: unsynchronized_pool_resource

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
pmr::unsynchronized_pool_resource
(C++17)

Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
ヘッダーで定義 <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=
[deleted]
コピー代入演算子は削除されている。 unsynchronized_pool_resource はコピー代入不可
(public member function)
公開メンバ関数
全ての割り当てられたメモリを解放する
(public member function)
上流メモリリソースへのポインタを返す
(public member function)
このリソースのプーリング動作を制御するオプションを返す
(public member function)
保護メンバ関数
[virtual]
メモリを割り当てる
(virtual protected member function)
[virtual]
メモリをプールに返す
(virtual protected member function)
[virtual]
他の std::pmr::memory_resource との等値比較を行う
(virtual protected member function)