namespace std::pmr {
struct pool_options {
std::size_t max_blocks_per_chunk = 0;
std::size_t largest_required_pool_block = 0;
};
}
概要
このクラスはsynchronized_pool_resource
及びunsynchronized_pool_resource
のコンストラクタに渡し、その内部メモリプールの設定を行うためのクラスである。
メンバ変数
名前 | 説明 | 対応バージョン |
---|---|---|
max_blocks_per_chunk |
メモリプールを補充する際に上流memory_resource から1度に取得するブロックサイズの最大値。すなわち、サイズ毎のプール内の1チャンク辺りの最大ブロック数。 各メモリプールを補充する際はチャンク単位で補充されチャンクサイズはそのたびに増加するが、この値よりは大きくならない。 |
C++17 |
largest_required_pool_block |
各メモリプールの最も大きなブロックのサイズ。 この値より大きなメモリの割り当て要求は上流の memory_resource から直接割り当てられる。 |
C++17 |
両変数共に、設定値が0もしくは実装定義の最大値を上回る場合は実装定義の最大値が利用される。
また、それが各pool_resource
のデフォルト設定となる。
備考
処理系は指定された値を必ずしも利用しない可能性がある。
すなわち、max_blocks_per_chunk
よりも小さい値を利用するかもしれず、プール毎に異なった値を利用するかもしれないし、largest_required_pool_block
よりも大きな最大プールサイズを選択するかもしれない。
バージョン
言語
- C++17
処理系
- Clang: ??
- GCC: 9.1 ✅
- Visual C++: 2017 update 6 ✅