std::pmr::polymorphic_allocator<T>::new_object
| template< class U, class... CtorArgs > U* new_object( CtorArgs&&... ctor_args ); |
(seit C++20) | |
Allokiert und konstruiert ein Objekt vom Typ U.
Gegeben alloc ist ein std::pmr::polymorphic_allocator<T>
U* p = alloc.new_object<U>(std::forward<CtorArgs>(ctor_args)...);
ist äquivalent zu
U* p = alloc.allocate_object<U>(); try { alloc.construct(p, std::forward<CtorArgs>(ctor_args)...); } catch (...) { alloc.deallocate_object(p); throw; }
Inhalt |
[bearbeiten] Parameter
| ctor_args | - | die Argumente, die an den Konstruktor von U weitergeleitet werden |
[bearbeiten] Rückgabewert
Ein Zeiger auf das allokierte und konstruierte Objekt.
[bearbeiten] Hinweise
Diese Funktion wurde für die Verwendung mit dem vollständig spezialisierten Allokator std::pmr::polymorphic_allocator<> eingeführt, kann aber in jeder Spezialisierung als Abkürzung nützlich sein, um eine Neubindung von std::pmr::polymorphic_allocator<T> an std::pmr::polymorphic_allocator<U> und den separaten Aufruf von allocate, construct und deallocate zu vermeiden.
Da U nicht abgeleitet wird, muss es als Template-Argument beim Aufruf dieser Funktion angegeben werden.
[bearbeiten] Ausnahmen
Kann jede Ausnahme auslösen, die durch den Aufruf von allocate_object oder den Konstruktor von U ausgelöst wird.
[bearbeiten] Siehe auch
| (C++20) |
allokiert rohen, ausgerichteten Speicher aus der zugrundeliegenden Ressource (public member function) |
| (C++20) |
allokiert rohen Speicher, der für ein Objekt oder ein Array geeignet ist (public member function) |
| alloziiert Speicher (public member function) | |
| [static] |
alloziiert uninitialisierten Speicher unter Verwendung des Allokators (public static member function of std::allocator_traits<Alloc>) |
| alloziert Speicher (public member function of std::pmr::memory_resource) |