最終更新日時(UTC): 2024年06月11日 13時45分38秒
Akira Takahashi が更新

履歴 編集

function
<memory_resource>

# std::pmr::pool_resource::options(C++17)

    pool_options options() const;

## 概要

内部のメモリプールの設定を取得する。

## 戻り値

内部のメモリプールを調整している値を保持した`pool_options`。

返される値はコンストラクタで設定した値と異なる可能性がある。
ゼロの値は実装定義のデフォルト値に置き換えられて返され、各サイズ指定は指定していない端数を持つ可能性がある（例えば、2の累乗等）。

## 例

以下では`synchronized_pool_resource`で書いてあるが、`unsynchronized_pool_resource`も同様。

    #include <iostream>
    #include <memory_resource>

    int main() {

      {
        std::pmr::synchronized_pool_resource mr{ {4096, 4096} };
        auto option = mr.options();

        std::cout << option.max_blocks_per_chunk << std::endl;
        std::cout << option.largest_required_pool_block << std::endl;
      }

      //異なる値が返ってくる例
      {
        std::pmr::synchronized_pool_resource mr{ {0, 0} };
        auto option = mr.options();

        std::cout << option.max_blocks_per_chunk << std::endl;
        std::cout << option.largest_required_pool_block << std::endl;
      }
    }

### 出力例（MSVC 2019 Preview2）

    4096
    4096
    9223372036854775807
    576460752303423488

## バージョン

### 言語

- C++17

### 処理系

- Clang: ??
- GCC: 9.1 ✅
- Visual C++: 2017 update 6 ✅

## 関連項目

- `pool_options`

## 参照

- P0220R1 Adopt Library Fundamentals V1 TS Components for C++17 (R1)
- P0337r0 | Delete operator= for polymorphic_allocator
- Working Draft, C++ Extensions for Library Fundamentals, Version 2