Namespaces
Variants

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

From cppreference.net
Utilities library
Plantilla principal
template < class ... Args >
constexpr T & emplace ( Args && ... args ) noexcept ;
(1) (desde C++23)
template < class U, class ... Args >
constexpr T & emplace ( std:: initializer_list < U > il, Args && ... args ) noexcept ;
(2) (desde C++23)
void Especialización parcial
constexpr void emplace ( ) noexcept ;
(3) (desde C++23)

Construye un valor esperado in-situ. Después de la llamada, has_value() devuelve true.

1) Destruye el valor contenido, luego inicializa directamente el valor esperado contenido en * this con std:: forward < Args > ( args ) ... .
Esta sobrecarga participa en la resolución de sobrecarga solo si std:: is_nothrow_constructible_v < T, Args... > es true .
2) Destruye el valor contenido, luego inicializa directamente el valor esperado contenido en * this con il y std:: forward < Args > ( args ) ... .
Esta sobrecarga participa en la resolución de sobrecarga solo si std:: is_nothrow_constructible_v < T, std:: initializer_list < U > & , Args... > es true .
3) Si * this contiene un valor inesperado, destruye ese valor.

Contenidos

Parámetros

args - los argumentos a pasar al constructor
il - la lista de inicializadores a pasar al constructor

Valor de retorno

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

Notas

Si la construcción de T es potencialmente lanzadora de excepciones, operator= puede ser utilizado en su lugar.

Ejemplo

Véase también

asigna contenidos
(función miembro pública)