std::expected<T,E>:: emplace
From cppreference.net
|
Основной шаблон
|
||
|
template
<
class
...
Args
>
constexpr T & emplace ( Args && ... args ) noexcept ; |
(1) | (начиная с C++23) |
|
template
<
class
U,
class
...
Args
>
constexpr T & emplace ( std:: initializer_list < U > il, Args && ... args ) noexcept ; |
(2) | (начиная с C++23) |
|
void
Частичная специализация
|
||
|
constexpr
void
emplace
(
)
noexcept
;
|
(3) | (начиная с C++23) |
Создает ожидаемое значение на месте. После вызова
has_value()
возвращает true.
1)
Уничтожает содержащееся значение, затем
прямо инициализирует
ожидаемое значение, содержащееся в
*
this
с помощью
std::
forward
<
Args
>
(
args
)
...
.
Эта перегрузка участвует в разрешении перегрузки только если
std::
is_nothrow_constructible_v
<
T, Args...
>
равно
true
.
2)
Уничтожает содержащееся значение, затем прямо инициализирует ожидаемое значение, содержащееся в
*
this
с помощью
il
и
std::
forward
<
Args
>
(
args
)
...
.
Эта перегрузка участвует в разрешении перегрузки только если
std::
is_nothrow_constructible_v
<
T,
std::
initializer_list
<
U
>
&
, Args...
>
равно
true
.
3)
Если
*
this
содержит неожиданное значение, уничтожает это значение.
Содержание |
Параметры
| args | - | аргументы для передачи конструктору |
| il | - | список инициализации для передачи конструктору |
Возвращаемое значение
1)
*
std::
construct_at
(
std::
addressof
(
val
)
,
std::
forward
<
Args
>
(
args
)
...
)
2)
*
std::
construct_at
(
std::
addressof
(
val
)
, il,
std::
forward
<
Args
>
(
args
)
...
)
Примечания
Если создание
T
потенциально может выбрасывать исключения,
operator=
может быть использован вместо этого.
Пример
|
Этот раздел не завершён
Причина: отсутствует пример |
Смотрите также
|
присваивает содержимое
(public member function) |