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 ✅