最終更新日時(UTC):
が更新

履歴 編集

class
<memory_resource>

std::pmr::pool_options(C++17)

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

処理系

関連項目

参照