std::pmr::polymorphic_allocator<T>::new_object
来自 cppreference.cn
< cpp | memory | polymorphic allocator
| template< class U, class... CtorArgs > U* new_object( CtorArgs&&... ctor_args ); |
(C++20 起) | |
分配并构造 U 类型的对象。
给定 alloc 是一个 std::pmr::polymorphic_allocator<T>
U* p = alloc.new_object<U>(std::forward<CtorArgs>(ctor_args)...);
等价于
U* p = alloc.allocate_object<U>(); try { alloc.construct(p, std::forward<CtorArgs>(ctor_args)...); } catch (...) { alloc.deallocate_object(p); throw; }
目录 |
[编辑] 参数
| ctor_args | - | 要转发给 U 的构造函数的参数 |
[编辑] 返回值
一个指向已分配和构造的对象的指针。
[编辑] 注意
此函数是为与完全特化的分配器 std::pmr::polymorphic_allocator<> 一起使用而引入的,但它在任何特化中都可能有用,可作为避免必须从 std::pmr::polymorphic_allocator<T> 重新绑定到 std::pmr::polymorphic_allocator<U>,以及不得不单独调用 allocate、construct 和 deallocate 的快捷方式。
由于 U 不会被推导,因此在调用此函数时必须将其作为模板参数提供。
[编辑] 异常
可能抛出由调用 allocate_object 或 U 的构造函数所抛出的任何异常。
[编辑] 参见
| (C++20) |
从底层资源分配原始对齐内存 (公开成员函数) |
| (C++20) |
分配适合对象或数组的原始内存 (公开成员函数) |
| 分配内存 (公开成员函数) | |
| [静态] |
使用分配器分配未初始化的存储 ( std::allocator_traits<Alloc> 的公开静态成员函数) |
| 分配内存 ( std::pmr::memory_resource 的公开成员函数) |