Namensräume
Varianten
Aktionen

std::uninitialized_construct_using_allocator

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

Allocatoren
uninitialized_construct_using_allocator
(C++20) 
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
 
Definiert in Header <memory>
template< class T, class Alloc, class... Args >

constexpr T* uninitialized_construct_using_allocator( T* p,
                                                      const Alloc& alloc,

                                                      Args&&... args );
(seit C++20)

Erzeugt ein Objekt des gegebenen Typs T mittels Uses-Allocator-Konstruktion an der uninitialisierten Speicherstelle, die durch p angegeben ist.

Äquivalent zu

return std::apply(
    [&]<class... Xs>(Xs&&...xs)
    {
        return std::construct_at(p, std::forward<Xs>(xs)...);
    },
    std::uses_allocator_construction_args<T>(alloc, std::forward<Args>(args)...));

Inhalt

[bearbeiten] Parameter

p - die Speicherstelle, an der das Objekt platziert wird
alloc - der zu verwendende Allokator
args - die Argumente, die an den Konstruktor von T übergeben werden sollen

[bearbeiten] Rückgabewert

Zeiger auf das neu erstellte Objekt vom Typ T.

[bearbeiten] Ausnahmen

Kann jede Ausnahme auslösen, die vom Konstruktor von T ausgelöst wird, typischerweise einschließlich std::bad_alloc.

[bearbeiten] Beispiel

[bearbeiten] Siehe auch

prüft, ob der angegebene Typ Uses-Allocator-Konstruktion unterstützt
(Klassen-Template) [edit]
erstellt ein Objekt des gegebenen Typs mittels Uses-Allocator-Konstruktion
(Funktions-Template) [edit]