- 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 [mark verified]
- Visual C++: 2017 update 6 [mark verified]