- memory_resource[meta header]
- std::pmr[meta namespace]
- function[meta id-type]
- cpp17[meta cpp]
namespace std::pmr {
memory_resource* get_default_resource() noexcept;
}
標準コンテナ等で、polymorphic_allocator
を使用するがmemory_resource
が指定されない場合に利用されるデフォルトのmemory_resource
のポインタを取得する。
この関数はスレッドセーフである。
set_default_resource()
の呼び出しと、後続のset_default_resource()
もしくはこの関数の呼び出しは同期的に実行される。
すなわち、この関数とset_default_resource()
の呼び出しはデータ競合を起こさない。
現在設定されているデフォルトのmemory_resource
のポインタ。
set_default_resource
によって何も設定されていない場合、new_delete_resource()
を返す。
投げない。
#include <iostream>
#include <memory_resource>
int main()
{
auto* mr = std::pmr::get_default_resource();
std::pmr::polymorphic_allocator<int> alloc(mr);
std::cout << std::boolalpha;
std::cout << (mr == std::pmr::new_delete_resource()) << std::endl;
}
- get_default_resource[color ff0000]
- new_delete_resource[link new_delete_resource.md]
true
- C++17
- Clang: ??
- GCC: 9.1
- Visual C++: 2017 update 6