std::pmr::polymorphic_allocator<T>::allocate_object
| 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
| (C++20) |
allokiert rohen, ausgerichteten Speicher aus der zugrundeliegenden Ressource (public member function) |
| (C++20) |
allokiert und konstruiert ein Objekt (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) |