◐ Shell
clean mode source ↗

std::expected<T,E>::value - cppreference.com

De cppreference.com

Plantilla primaria

constexpr T& value() &;

(1) (desde C++23)

constexpr const T& value() const&;

(2) (desde C++23)

constexpr T&& value() &&;

(3) (desde C++23)

constexpr const T&& value() const&&;

(4) (desde C++23)

Especialización parcial void

constexpr void value() const&;

(5) (desde C++23)

constexpr void value() &&;

(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 para
las 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]