close
Пространства имён
Варианты
Действия

std::expected<T,E>::emplace

Материал из cppreference.com
 
 
Библиотека утилит
Языковая поддержка
Поддержка типов (базовые типы, RTTI)
Макросы тестирования функциональности библиотеки (C++20)    
Управление динамической памятью
Программные утилиты
Поддержка сопрограмм (C++20)
Вариативные функции
Трёхстороннее сравнение (C++20)
(C++20)
(C++20)(C++20)(C++20)(C++20)(C++20)(C++20)
Общие утилиты
Дата и время
Функциональные объекты
Библиотека форматирования (C++20)
(C++11)
Операторы отношения (устарело в C++20)
Целочисленные функции сравнения
(C++20)(C++20)(C++20)    
(C++20)
Операции обмена и типа
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
Общие лексические типы
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)
Элементарные преобразования строк
(C++17)
(C++17)
 
 
<tbody> </tbody>
T не является cv void
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)
T является cv void
constexpr void emplace() noexcept;
(3) (начиная с C++23)

Создаёт ожидаемое значение на месте. После вызова has_value() возвращает true.

1) Уничтожает содержащееся значение, затем инициализирует ожидаемое значение, содержащееся в *this, как будто путём прямой инициализации объекта типа T из аргументов std::forward<Args>(args).... Эта перегрузка участвует в разрешении перегрузки, только если std::is_nothrow_constructible_v<T, Args...> равно true.
2) Уничтожает содержащееся значение, затем инициализирует ожидаемое значение, содержащееся в *this, как будто путём прямой инициализации объекта типа T из аргументов il, std::forward<Args>(args).... Эта перегрузка участвует в разрешении перегрузки, только если std::is_nothrow_constructible_v<T, std::initializer_list<U>&, Args...> равно true.
3) Если *this содержит неожидаемое значение, это значение уничтожается.

Параметры

args... аргументы для передачи конструктору
il список инициализаторов для передачи конструктору

Возвращаемое значение

Ссылка на новое содержащееся значение.

Исключения

спецификация noexcept:  
noexcept
  

Примечание

Если создание T является потенциально генерирующей исключение, эта функция не определена. В этом случае ответственность за создание временного объекта и его перемещение или копирование лежит на пользователе.

Пример

Смотрите также

присваивает содержимое
(public функция-элемент) [править]