std::expected<T,E>::value - cppreference.com
De cppreference.com
| Plantilla primaria |
||
|
|
(1) | (desde C++23) |
|
|
(2) | (desde C++23) |
|
|
(3) | (desde C++23) |
|
|
(4) | (desde C++23) |
| Especialización parcial |
||
|
|
(5) | (desde C++23) |
|
|
(6) | (desde C++23) |
Si *this contiene un valor esperado, devuelve una referencia al valor contenido. No devuelve nada para la especialización parcial void.
De lo contrario, lanza una excepción de tipo std::bad_expected_access<std::decay_t<E>> que contiene una copia de error().
1,2) Si std::is_copy_constructible_v<E> es false, el programa está mal formado.
3,4) Si std::is_copy_constructible_v<E> o std::is_constructible_v<E, decltype(std::move(error()))> es false, el programa está mal formado.
5) Si std::is_copy_constructible_v<E> es false, el programa está mal formado.
6) Si std::is_move_constructible_v<E> es false, el programa está mal formado.
Valor de retorno
3,4) std::move(val)
Excepciones
1,2,5) Lanza std::bad_expected_access(std::as_const(error())) si *this contiene un valor no esperado.
3,4,6) Lanza std::bad_expected_access(std::move(error())) si *this contiene un valor no esperado.
Ejemplo
Informes de defectos
Los siguientes informes de defectos de cambio de comportamiento se aplicaron de manera retroactiva a los estándares de C++ publicados anteriormente.
| ID | Aplicado a | Comportamiento según lo publicado | Comportamiento correcto |
|---|---|---|---|
| LWG 3940 | C++23 | No se requería que E fuera copiable o construible por movimiento paralas sobrecargas (5,6) |
Se requiere. |
Véase también
Devuelve el valor expected si está presente. De lo contrario, otro valor. (función miembro pública) [editar] | |
| Accede al valor esperado. (función miembro pública) [editar] | |
| Devuelve el valor no esperado. (función miembro pública) [editar] | |
Excepción que indica acceso verificado a un expected que contiene un valor no esperado. (plantilla de clase) [editar] |