std::pmr::polymorphic_allocator<T>:: new_object
|
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| Member functions | ||||
|
(
C++20/26*
)
|
||||
|
polymorphic_allocator::new_object
(C++20)
|
||||
| Non-member functions | ||||
|
(until C++20)
|
|
template
<
class
U,
class
...
CtorArgs
>
U * new_object ( CtorArgs && ... ctor_args ) ; |
(seit C++20) | |
Weist Speicher zu und konstruiert ein Objekt vom Typ
U
.
Gegeben sei, dass
alloc
ein
std::
pmr
::
polymorphic_allocator
<
T
>
ist:
U* p = alloc.new_object<U>(std::forward<CtorArgs>(ctor_args)...);
entspricht
U* p = alloc.allocate_object<U>(); try { alloc.construct(p, std::forward<CtorArgs>(ctor_args)...); } catch (...) { alloc.deallocate_object(p); throw; }
Inhaltsverzeichnis |
Parameter
| ctor_args | - |
die Argumente, die an den Konstruktor von
U
weitergeleitet werden sollen
|
Rückgabewert
Ein Zeiger auf das allokierte und konstruierte Objekt.
Hinweise
Diese Funktion wurde für die Verwendung mit dem vollständig spezialisierten Allokator std:: pmr :: polymorphic_allocator <> eingeführt, kann jedoch in jeder Spezialisierung nützlich sein, um als Abkürzung zu dienen und das Neubinden von std:: pmr :: polymorphic_allocator < T > zu std:: pmr :: polymorphic_allocator < U > sowie das separate Aufrufen von allocate , construct und deallocate zu vermeiden.
Da
U
nicht abgeleitet wird, muss es als Template-Argument beim Aufruf dieser Funktion angegeben werden.
Exceptions
Kann alle Ausnahmen werfen, die durch den Aufruf von
allocate_object
oder den Konstruktor von
U
ausgelöst werden.
Siehe auch
|
(C++20)
|
Reserviert rohen, ausgerichteten Speicher von der zugrunde liegenden Ressource
(öffentliche Elementfunktion) |
|
(C++20)
|
Reserviert rohen Speicher für ein Objekt oder ein Array
(öffentliche Elementfunktion) |
|
Speicher reservieren
(öffentliche Elementfunktion) |
|
|
[static]
|
Reserviert nicht initialisierten Speicher unter Verwendung des Allokators
(öffentliche statische Elementfunktion von
std::allocator_traits<Alloc>
)
|
|
Speicher reservieren
(öffentliche Elementfunktion von
std::pmr::memory_resource
)
|