std::expected<T,E>::emplace
Von cppreference.com
| Primäre Vorlage |
||
| 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 an Ort und Stelle. Nach dem Aufruf gibt has_value() true zurück.
1) Zerstört den enthaltenen Wert und initialisiert dann den im *this enthaltenen erwarteten Wert direkt mit std::forward<Args>(args)....
Diese Überladung nimmt an der Auflösung von Überladungen teil, nur wenn std::is_nothrow_constructible_v<T, Args...> true ist.
2) Zerstört den enthaltenen Wert und initialisiert dann den im *this enthaltenen erwarteten Wert direkt mit il und std::forward<Args>(args)....
Diese Überladung nimmt an der Auflösung von Überladungen teil, nur wenn std::is_nothrow_constructible_v<T, std::initializer_list<U>&, Args...> true ist.
3) Wenn *this einen unerwarteten Wert enthält, wird dieser Wert zerstört.
Inhalt |
[bearbeiten] Parameter
| args | - | die Argumente, die an den Konstruktor übergeben werden sollen |
| il | - | die Initialisierungsliste, die an den Konstruktor übergeben werden soll |
[bearbeiten] Rückgabewert
1) *std::construct_at(std::addressof(
val), std::forward<Args>(args)...)2) *std::construct_at(std::addressof(
val), il, std::forward<Args>(args)...)[bearbeiten] Hinweise
Wenn die Konstruktion von T potenziell werfend ist, kann stattdessen operator= verwendet werden.
[bearbeiten] Beispiel
| Dieser Abschnitt ist unvollständig Grund: kein Beispiel |
[bearbeiten] Siehe auch
| weist Inhalte zu (public member function) |