FreeBSD Manual Pages
std::pmr::p...::new_object(3) C++ Standard Libarystd::pmr::p...::new_object(3) NAME std::pmr::polymorphic_allocator::new_object - std::pmr::polymorphic_al- locator::new_object Synopsis template< class U, class... CtorArgs > (since C++20) [[nodiscard]] U* new_object( CtorArgs&&... ctor_args ); Allocates and constructs an object of type U. Given alloc is a std::pmr::polymorphic_allocator<T>: U* p = alloc.new_object<U>(std::forward<CtorArgs>(ctor_args)...); is equivalent to U* p = alloc.allocate_object<U>(); try { alloc.construct(p, std::forward<CtorArgs>(ctor_args)...); } catch (...) { alloc.deallocate_object(p); throw; } Parameters ctor_args - the arguments to forward to the constructor of U Return value A pointer to the allocated and constructed object. Notes This function was introduced for use with the fully-specialized al- locator std::pmr::polymorphic_allocator<>, but it may be useful in any spe- cialization as a shortcut to avoid having to rebind from std::pmr::polymorphic_allo- cator<T> to std::pmr::polymorphic_allocator<U>, and having to call allocate, construct, and deallocate individually. Since U is not deduced, it must be provided as a template argument when calling this function. Exceptions May throw any exceptions thrown by the call to allocate_object or the constructor of U. See also allocate_bytes Allocate raw aligned memory from the underlying re- source (C++20) (public member function) allocate_object Allocates raw memory suitable for an object or an array (C++20) (public member function) allocate Allocate memory (public member function) allocate allocates uninitialized storage using the allocator [static] (public static member function of std::alloca- tor_traits<Alloc>) allocate allocates memory (public member function of std::pmr::memory_re- source) http://cppreference.com 2022.07.31 std::pmr::p...::new_object(3)
NAME | Synopsis | Parameters | Return value | Notes | Exceptions | See also
Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=std::pmr::polymorphic_allocator::new_object&sektion=3&manpath=FreeBSD+Ports+15.0>
