Namensräume
Varianten
Aktionen

std::pmr::polymorphic_allocator<T>::allocate_object

Von cppreference.com
 
 
Speicherverwaltungsbibliothek
(nur Exposition*)
Algorithmen für uninitialisierten Speicher
(C++17)
(C++17)
(C++17)
Beschränkte uninitialisierte
Speicher-Algorithmen
C-Bibliothek

Allocatoren
Speicherressourcen
Unterstützung für Garbage Collection
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
(C++11)(bis C++23)
Uninitialisierter Speicher
Explizites Lebenszeitmanagement
 
 
template< class U >
U* allocate_object( std::size_t n = 1 );
(seit C++20)

Allokiert Speicher für n Objekte vom Typ U unter Verwendung der zugrundeliegenden Speicherressource.

Wenn std::numeric_limits<std::size_t>::max() / sizeof(U) < n, wird std::bad_array_new_length ausgelöst, andernfalls ist dies äquivalent zu return static_cast<U*>(allocate_bytes(n * sizeof(U), alignof(U)));.

Inhalt

[bearbeiten] Parameter

n - die Anzahl der Objekte, für die Speicher allokiert werden soll

[bearbeiten] Rückgabewert

Ein Zeiger auf den allokierten Speicher.

[bearbeiten] Hinweise

Diese Funktion wurde für die Verwendung mit dem vollständig spezialisierten Allocator std::pmr::polymorphic_allocator<> eingeführt, kann aber in jeder Spezialisierung als Abkürzung verwendet werden, um das erneute Binden von std::pmr::polymorphic_allocator<T> zu std::pmr::polymorphic_allocator<U> zu vermeiden.

Da U nicht abgeleitet wird, muss es beim Aufruf dieser Funktion als Template-Argument angegeben werden.

[bearbeiten] Ausnahmen

Löst std::bad_array_new_length aus, wenn n > std::numeric_limits<std::size_t>::max() / sizeof(U); kann auch beliebige Ausnahmen auslösen, die beim Aufruf von resource()->allocate ausgelöst werden.

[bearbeiten] Siehe auch

allokiert rohen, ausgerichteten Speicher aus der zugrundeliegenden Ressource
(public member function) [edit]
allokiert und konstruiert ein Objekt
(public member function) [edit]
alloziiert Speicher
(public member function) [edit]
[static]
alloziiert uninitialisierten Speicher unter Verwendung des Allokators
(public static member function of std::allocator_traits<Alloc>) [bearbeiten]
alloziert Speicher
(public member function of std::pmr::memory_resource) [bearbeiten]