std::experimental::optional<T>::emplace
From cppreference.com
< cpp | experimental | optional
template
<
class... Args
>
void emplace( Args&&... args ) ; |
(library fundamentals TS) | |
template
<
class U, class... Args
>
void emplace( std::initializer_list <U> ilist, Args&&... args ) ; |
(library fundamentals TS) | |
Constructs the contained value in-place. If *this
1) Initializes the contained value by direct-initializing (but not direct-list-initializing) with
std::forward
<Args>
(args)
2) Initializes the contained value by calling its constructor with
ilist, std::forward
<Args>
(args)
as parameters. This overload participates in overload resolution only if
std::is_constructible
<T, std::initializer_list
<U>
&, Args&&...>
::
value
is true
Parameters
args... | - | the arguments to pass to the constructor |
ilist | - | the initializer list to pass to the constructor |
Type requirements | ||
-T must be constructible from Args...
| ||
-
T must be constructible from std::initializer_list and Args...
|
Return value
(none)
Exceptions
Any exception thrown by the selected constructor of T
. If an exception is thrown, *this
See also
assigns contents (public member function) |