最終更新日時: 2025年07月10日 10時26分30秒 (JST)
Koichi Murase が更新

履歴 編集

function
<memory_resource>

# std::pmr::new_delete_resource(C++17)

    namespace std::pmr {
      memory_resource* new_delete_resource() noexcept;
    }

## 概要

グローバルな`operator new`及び`operator delete`を利用してメモリを確保・解放する`memory_resource`を取得する。

## 戻り値

静的記憶域期間に配置されている`memory_resource`実装のオブジェクトへのポインタを返す。

呼び出し時は常に同じポインタを返す。

## 例外

投げない。

## 備考

この関数で取得したポインタを`p`、その他任意の`memory_resource`オブジェクトを`r`とすると、`p->is_equal(r)`は`&r == p`を返す。

実装クラスの型名は未規定。

## 例

    #include <iostream>
    #include <memory_resource>

    int main()
    {
      auto* mr = std::pmr::new_delete_resource();
      std::pmr::polymorphic_allocator<int> alloc(mr);

      std::cout << mr << std::endl;
      std::cout << std::pmr::new_delete_resource() << std::endl;
    }

### 出力例（VS2019 Preview2）

    00007FFCB3306250
    00007FFCB3306250

## バージョン

### 言語

- C++17

### 処理系

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

## 関連項目

- `memory_resource`
- `operator new`
- `operator delete`