Namespaces
Variants

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

From cppreference.net
template < class ... Args >
void emplace ( Args && ... args ) ;
(Bibliotheksfundamente TS)
template < class U, class ... Args >
void emplace ( std:: initializer_list < U > ilist, Args && ... args ) ;
(Bibliotheksfundamente TS)

Konstruiert den enthaltenen Wert direkt an Ort und Stelle. Falls * 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 Direct-Initialisierung (aber nicht Direct-List-Initialisierung) mit std:: forward < Args > ( args ) ... als Parameter.
2) Initialisiert den enthaltenen Wert durch Aufruf seines Konstruktors mit ilist, std:: forward < Args > ( args ) ... als Parameter. Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn std:: is_constructible < T, std:: initializer_list < U > & , Args && ... > :: value gleich true ist.

Inhaltsverzeichnis

Parameter

args... - die an den Konstruktor zu übergebenden Argumente
ilist - die an den Konstruktor zu übergebende Initialisierungsliste
Typanforderungen
-
T muss aus Args... konstruierbar sein
-
T muss aus std::initializer_list und Args... konstruierbar sein

Rückgabewert

(keine)

Exceptions

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

Siehe auch

weist Inhalte zu
(öffentliche Elementfunktion)