std::expected<T,E>::emplace
Von de.cppreference.net
| 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) |
Erzeugt einen expected-Wert an Ort und Stelle. Nach dem Aufruf gibt has_value() true zurück.
1) Zerstört den enthaltenen Wert und direktinitialisiert dann den in
*this enthaltenen expected-Wert mit std::forward<Args>(args).... Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn
std::is_nothrow_constructible_v<T, Args...> true ist.2) Zerstört den enthaltenen Wert und direktinitialisiert dann den in
*this enthaltenen expected-Wert mit il und std::forward<Args>(args).... Diese Überladung nimmt nur an der Überladungsauflösung teil, wenn
std::is_nothrow_constructible_v<T, std::initializer_list<U>&, Args...> true ist.3) Wenn
*this einen unexpected-Wert enthält, wird dieser Wert zerstört.Parameter
| args | - | die an den Konstruktor zu übergebenden Argumente |
| il | - | die an den Konstruktor zu übergebende Initialisierungsliste |
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
)
...
)
Hinweise
Falls die Konstruktion von
T
potenziell werfend ist,
kann stattdessen
operator=
verwendet werden.
Beispiel
|
Dieser Abschnitt ist unvollständig
Grund: Kein Beispiel |
Siehe auch
|
weist Inhalte zu
(öffentliche Elementfunktion) |