- memory_resource[meta header]
- std::pmr[meta namespace]
- function[meta id-type]
- cpp17[meta cpp]
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;
}
- new_delete_resource[color ff0000]
- polymorphic_allocator[link polymorphic_allocator.md]
00007FFCB3306250
00007FFCB3306250
- C++17
- Clang: ??
- GCC: 9.1
- Visual C++: 2017 update 6