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