Namespaces
Variants

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

From ru.cppreference.net
 
 
Библиотека утилит
Поддержка языка
Поддержка типов (основные типы, RTTI)
Макросы проверки возможностей библиотеки (C++20)
Программные утилиты
Функции с переменным числом аргументов
Поддержка корутин (C++20)
Поддержка контрактов (C++26)
Трёхстороннее сравнение
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Общие утилиты
Операторы отношений (устарело в 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)



 
 
Первичный шаблон
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 - список инициализации для передачи конструктору

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

2) * std:: construct_at ( std:: addressof ( val ) , il, std:: forward < Args > ( args ) ... )

Примечания

Если создание T потенциально может выбрасывать исключения, operator= может быть использован вместо этого.

Пример

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

присваивает содержимое
(public member function)