Namensräume
Varianten
Aktionen

std::experimental::optional<T>::emplace

Von cppreference.com
 
 
 
 
 
template< class... Args >
void emplace( Args&&... args );
(library fundamentals TS)
template< class U, class... Args >
void emplace( std::initializer_list<U> ilist, Args&&... args );
(library fundamentals TS)

Konstruiert den enthaltenen Wert in-place. Wenn *this vor dem Aufruf bereits einen Wert enthält, wird der enthaltene Wert durch Aufruf seines Destruktors zerstört.

1) Initialisiert den enthaltenen Wert durch direkte Initialisierung (aber nicht durch direkte Listeninitialisierung) mit std::forward<Args>(args)... als Parameter.
2) Initialisiert den enthaltenen Wert durch Aufruf seines Konstruktors mit ilist, std::forward<Args>(args)... als Parameter. Dieser Überladungsfall nimmt nur an der Überladungsauswahl teil, wenn std::is_constructible<T, std::initializer_list<U>&, Args&&...>::value true ist.

Inhalt

[bearbeiten] Parameter

args... - die Argumente, die an den Konstruktor übergeben werden sollen
ilist - die Initialisierungsliste, die an den Konstruktor übergeben werden soll
Typanforderungen
-
T muss aus Args... konstruierbar sein
-
T muss aus std::initializer_list und Args... konstruierbar sein

[bearbeiten] Rückgabewert

(keine)

[bearbeiten] Ausnahmen

Jede Ausnahme, die vom ausgewählten Konstruktor von T ausgelöst wird. Wenn eine Ausnahme ausgelöst wird, enthält *this nach diesem Aufruf keinen Wert (der zuvor enthaltene Wert, falls vorhanden, wurde zerstört).

[bearbeiten] Siehe auch

weist Inhalte zu
(öffentliche Memberfunktion) [bearbeiten]