Namespaces
Variants

std::expected<T,E>:: emplace

From cppreference.net
Utilities library
Primäres Template
template < class ... Args >
constexpr T & emplace ( Args && ... args ) noexcept ;
(1) (seit C++23)
template < class U, class ... Args >
constexpr T & emplace ( std:: initializer_list < U > il, Args && ... args ) noexcept ;
(2) (seit C++23)
void Partielle Spezialisierung
constexpr void emplace ( ) noexcept ;
(3) (seit C++23)

Konstruiert einen erwarteten Wert direkt an Ort und Stelle. Nach dem Aufruf gibt has_value() true zurück.

1) Zerstört den enthaltenen Wert, dann direkt-initialisiert den erwarteten Wert enthalten in * this mit std:: forward < Args > ( args ) ... .
Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn std:: is_nothrow_constructible_v < T, Args... > true ist.
2) Zerstört den enthaltenen Wert, dann direkt-initialisiert den erwarteten Wert in * this mit il und std:: forward < Args > ( args ) ... .
Diese Überladung nimmt nur dann an der Überladungsauflösung teil, wenn std:: is_nothrow_constructible_v < T, std:: initializer_list < U > & , Args... > gleich true ist.
3) Wenn * this einen unerwarteten Wert enthält, zerstört diesen Wert.

Inhaltsverzeichnis

Parameter

args - die an den Konstruktor zu übergebenden Argumente
il - die an den Konstruktor zu übergebende Initialisierungsliste

Rückgabewert

2) * std:: construct_at ( std:: addressof ( val ) , il, std:: forward < Args > ( args ) ... )

Hinweise

Falls die Konstruktion von T potenziell werfend ist, kann stattdessen operator= verwendet werden.

Beispiel

Siehe auch

weist Inhalte zu
(öffentliche Elementfunktion)