std::pmr::polymorphic_allocator<T>::allocate
Von cppreference.com
< cpp | memory | polymorphic allocator
| T* allocate( std::size_t n ); |
(seit C++17) | |
Allokiert Speicherplatz für n Objekte vom Typ T unter Verwendung der zugrunde liegenden Speicherressource. Entspricht return static_cast<T*>(resource()->allocate(n * sizeof(T), alignof(T)));.
Inhalt |
[edit] Parameter
| n | - | die Anzahl der Objekte, für die Speicher allokiert werden soll |
[edit] Rückgabewert
Ein Zeiger auf den allokierten Speicher.
[edit] Ausnahmen
Wirft std::bad_array_new_length, wenn n > std::numeric_limits<std::size_t>::max() / sizeof(T); kann auch alle Ausnahmen werfen, die vom Aufruf an resource()->allocate geworfen werden.
[edit] Fehlerberichte
Die folgenden Verhaltensändernden Fehlerberichte wurden rückwirkend auf zuvor veröffentlichte C++-Standards angewendet.
| DR | angewendet auf | Verhalten wie veröffentlicht | Korrigiertes Verhalten |
|---|---|---|---|
| LWG 3038 | C++17 | allocate könnte Speicherplatz mit falscher Größe allokieren |
wirft stattdessen length_error |
| LWG 3237 | C++17 | die von allocate geworfene Ausnahme war inkonsistent mit std::allocator::allocate |
konsistent gemacht |
[edit] 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) |
| (C++20) |
allokiert und konstruiert ein Objekt (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) |