Namespaces
Variants

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

From cppreference.net
Utilities library
Modèle primaire
constexpr T & value ( ) & ;
(1) (depuis C++23)
constexpr const T & value ( ) const & ;
(2) (depuis C++23)
constexpr T && value ( ) && ;
(3) (depuis C++23)
constexpr const T && value ( ) const && ;
(4) (depuis C++23)
void Spécialisation partielle
constexpr void value ( ) const & ;
(5) (depuis C++23)
constexpr void value ( ) && ;
(6) (depuis C++23)

Si * this contient une valeur attendue, retourne une référence à la valeur contenue. Ne retourne rien pour la void spécialisation partielle.

Sinon, lève une exception de type std:: bad_expected_access < std:: decay_t < E >> qui contient une copie de error() .

1,2) Si std:: is_copy_constructible_v < E > est false , le programme est mal formé.
3,4) Si std:: is_copy_constructible_v < E > ou std:: is_constructible_v < E, decltype ( std :: move ( error ( ) ) ) > est false , le programme est mal formé.
5) Si std:: is_copy_constructible_v < E > est false , le programme est mal formé.
6) Si std:: is_move_constructible_v < E > est false , le programme est mal formé.

Table des matières

Valeur de retour

1,2) val
3,4) std :: move ( val )

Exceptions

1,2,5) Lance std:: bad_expected_access ( std:: as_const ( error ( ) ) ) si * this contient une valeur inattendue.
3,4,6) Lance std:: bad_expected_access ( std :: move ( error ( ) ) ) si * this contient une valeur inattendue.

Exemple

Rapports de défauts

Les rapports de défauts modifiant le comportement suivants ont été appliqués rétroactivement aux normes C++ précédemment publiées.

DR S'applique à Comportement publié Comportement corrigé
LWG 3940 C++23 E n'était pas requis d'être copiable/déplaçable pour les surcharges (5,6) requis

Voir aussi

renvoie la valeur attendue si présente, une autre valeur sinon
(fonction membre publique)
accède à la valeur attendue
(fonction membre publique)
renvoie la valeur inattendue
(fonction membre publique)
exception indiquant un accès vérifié à un expected qui contient une valeur inattendue
(modèle de classe)