std::experimental::optional<T>:: emplace
From cppreference.net
<
cpp
|
experimental
|
optional
|
template
<
class
...
Args
>
void emplace ( Args && ... args ) ; |
(библиотека fundamentals TS) | |
|
template
<
class
U,
class
...
Args
>
void emplace ( std:: initializer_list < U > ilist, Args && ... args ) ; |
(библиотека fundamentals TS) | |
Создает содержащееся значение на месте. Если * this уже содержит значение до вызова, содержащееся значение уничтожается путем вызова его деструктора.
1)
Инициализирует содержащееся значение с помощью
прямой инициализации
(но не прямой инициализации списком) с параметрами
std::
forward
<
Args
>
(
args
)
...
.
2)
Инициализирует содержащееся значение путем вызова его конструктора с параметрами
ilist,
std::
forward
<
Args
>
(
args
)
...
. Эта перегрузка участвует в разрешении перегрузки только если
std::
is_constructible
<
T,
std::
initializer_list
<
U
>
&
, Args
&&
...
>
::
value
равно
true
.
Содержание |
Параметры
| args... | - | аргументы для передачи конструктору |
| ilist | - | список инициализации для передачи конструктору |
| Требования к типам | ||
-
T
должен быть конструируемым из
Args...
|
||
-
T
должен быть конструируемым из
std::initializer_list
и
Args...
|
||
Возвращаемое значение
(нет)
Исключения
Любое исключение, выброшенное выбранным конструктором
T
. Если исключение выбрасывается,
*
this
не содержит значения после этого вызова (ранее содержавшееся значение, если оно было, было уничтожено).
Смотрите также
|
присваивает содержимое
(публичная функция-член) |