std::expected<T,E>:: emplace
From cppreference.net
|
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
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) |