std::expected<T,E>::emplace
De cppreference.com
| Plantilla primaria |
||
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) |
| Especialización parcial void |
||
constexpr void emplace() noexcept; |
(3) | (desde C++23) |
Construye un valor esperado en el sitio. Después de la llamada, has_value() devuelve true.
1) Destruye el valor contenido, luego inicializa mediante inicialización directa el valor esperado contenido en
*this con std::forward<Args>(args).... Esta sobrecarga solo participa en la resolución de sobrecargas si
std::is_nothrow_constructible_v<T, Args...> es true.2) Destruye el valor contenido, luego inicializa mediante inicialización directa el valor esperado contenido en
*this con il y std::forward<Args>(args).... Esta sobrecarga solo participa en la resolución de sobrecargas si
std::is_nothrow_constructible_v<T, std::initializer_list<U>&, Args...> es true.3) Si
*this contiene un valor no esperado, destruye ese valor.Parámetros
| args | - | Los argumentos a pasar al constructor. |
| il | - | La lista de inicializadores a pasar al constructor. |
Valor de retorno
1)
*std::construct_at(std::addressof(val), std::forward<Args>(args)...)2)
*std::construct_at(std::addressof(val), il, std::forward<Args>(args)...)Notas
Si la construcción de T puede potencialmente lanzar, puede usarse operator= en su lugar.
Ejemplo
| Esta sección está incompleta Razón: sin ejemplo |
Véase también
| Asigna el contenido. (función miembro pública) |