std::experimental::optional<T>:: emplace
From cppreference.net
<
cpp
|
experimental
|
optional
|
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) |