Namespaces
Variants

std::pmr::polymorphic_allocator<T>:: new_object

From cppreference.net
Memory management library
( exposition only* )
Allocators
Uninitialized memory algorithms
Constrained uninitialized memory algorithms
Memory resources
Uninitialized storage (until C++20)
( until C++20* )
( until C++20* )
( until C++20* )

Garbage collector support (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
(C++11) (until C++23)
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

Reserviert rohen, ausgerichteten Speicher von der zugrunde liegenden Ressource
(öffentliche Elementfunktion)
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 )