Namespaces
Variants

operator==, !=, <, <=, >, >= (std::experimental::optional)

From cppreference.net
Défini dans l'en-tête <experimental/optional>
Compare deux optional objets
template < class T >
constexpr bool operator == ( const optional < T > & lhs, const optional < T > & rhs ) ;
(1) (bibliothèque fondamentale TS)
template < class T >
constexpr bool operator ! = ( const optional < T > & lhs, const optional < T > & rhs ) ;
(2) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator < ( const optional < T > & lhs, const optional < T > & rhs ) ;
(3) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator <= ( const optional < T > & lhs, const optional < T > & rhs ) ;
(4) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator > ( const optional < T > & lhs, const optional < T > & rhs ) ;
(5) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator >= ( const optional < T > & lhs, const optional < T > & rhs ) ;
(6) (spécification technique des fondamentaux de la bibliothèque)
Compare un objet optional avec un nullopt
template < class T >
constexpr bool operator == ( const optional < T > & opt, std:: nullopt_t ) noexcept ;
(7) (bibliothèque fondamentale TS)
template < class T >
constexpr bool operator == ( std:: nullopt_t , const optional < T > & opt ) noexcept ;
(8) (bibliothèque fundamentals TS)
template < class T >
constexpr bool operator ! = ( const optional < T > & opt, std:: nullopt_t ) noexcept ;
(9) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator ! = ( std:: nullopt_t , const optional < T > & opt ) noexcept ;
(10) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator < ( const optional < T > & opt, std:: nullopt_t ) noexcept ;
(11) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator < ( std:: nullopt_t , const optional < T > & opt ) noexcept ;
(12) (bibliothèque fondamentale TS)
template < class T >
constexpr bool operator <= ( const optional < T > & opt, std:: nullopt_t ) noexcept ;
(13) (bibliothèque fondamentale TS)
template < class T >
constexpr bool operator <= ( std:: nullopt_t , const optional < T > & opt ) noexcept ;
(14) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator > ( const optional < T > & opt, std:: nullopt_t ) noexcept ;
(15) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator > ( std:: nullopt_t , const optional < T > & opt ) noexcept ;
(16) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator >= ( const optional < T > & opt, std:: nullopt_t ) noexcept ;
(17) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator >= ( std:: nullopt_t , const optional < T > & opt ) noexcept ;
(18) (bibliothèque fundamentals TS)
Compare un objet optional avec un T
template < class T >
constexpr bool operator == ( const optional < T > & opt, const T & value ) ;
(19) (bibliothèque fundamentals TS)
template < class T >
constexpr bool operator == ( const T & valeur, const optional < T > & opt ) ;
(20) (bibliothèque fundamentals TS)
template < class T >
constexpr bool operator ! = ( const optional < T > & opt, const T & value ) ;
(21) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator ! = ( const T & value, const optional < T > & opt ) ;
(22) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator < ( const optional < T > & opt, const T & value ) ;
(23) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator < ( const T & value, const optional < T > & opt ) ;
(24) (bibliothèque fundamentals TS)
template < class T >
constexpr bool operator <= ( const optional < T > & opt, const T & value ) ;
(25) (bibliothèque fondamentale TS)
template < class T >
constexpr bool operator <= ( const T & value, const optional < T > & opt ) ;
(26) (bibliothèque fundamentals TS)
template < class T >
constexpr bool operator > ( const optional < T > & opt, const T & value ) ;
(27) (bibliothèque fondamentale TS)
template < class T >
constexpr bool operator > ( const T & value, const optional < T > & opt ) ;
(28) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator >= ( const optional < T > & opt, const T & value ) ;
(29) (spécifications techniques des bibliothèques fondamentales)
template < class T >
constexpr bool operator >= ( const T & value, const optional < T > & opt ) ;
(30) (bibliothèque fondamentale TS)

Effectue des opérations de comparaison sur optional objets.

1-6) Compare deux objets optional , lhs et rhs . Les valeurs contenues sont comparées (en utilisant operator == pour (1,2) et operator < pour (3-6) ) uniquement si lhs et rhs contiennent tous deux des valeurs. Sinon,
  • lhs est considéré égal à rhs si, et seulement si, ni lhs ni rhs ne contiennent de valeur.
  • lhs est considéré inférieur à rhs si, et seulement si, rhs contient une valeur et lhs n'en contient pas.
7-18) Compare opt avec nullopt . Équivalent à (1-6) lors de la comparaison avec un optional qui ne contient pas de valeur.
19-30) Compare opt avec une value . Les valeurs sont comparées (en utilisant operator == pour (19-22) et operator < pour (23-30) ) uniquement si opt contient une valeur. Sinon, opt est considéré comme inférieur à value .

Paramètres

lhs, rhs, opt - un objet optional à comparer
value - valeur à comparer avec la valeur contenue
Exigences de type
-
T doit satisfaire aux exigences de EqualityComparable pour utiliser les surcharges (1,2).

Valeur de retour

1) Si bool ( lhs ) ! = bool ( rhs ) , retourne false .
Sinon, si bool ( lhs ) == false (et donc bool ( rhs ) == false également), retourne true .
Sinon, retourne * lhs == * rhs .
2) Retourne ! ( lhs == rhs ) .
3) Si bool ( rhs ) == false retourne false .
Sinon, si bool ( lhs ) == false , retourne true .
Sinon retourne * x < * y .
4) Retourne ! ( rhs < lhs ) .
5) Retourne rhs < lhs .
6) Retourne ! ( lhs < rhs ) .
7,8) Retourne ! opt .
9,10) Retourne bool ( opt ) .
11) Retourne false .
12) Retourne bool ( opt ) .
13) Retourne ! opt .
14) Retourne true .
15) Retourne bool ( opt ) .
16) Retourne false .
17) Retourne true .
18) Retourne ! opt .
19) Retourne bool ( opt ) ? * opt == value : false .
20) Retourne bool ( opt ) ? value == * opt : false .
21) Retourne bool ( opt ) ? ! ( * opt == value ) : true .
22) Retourne bool ( opt ) ? ! ( value == * opt ) : true .
23) Retourne bool ( opt ) ? * opt < value : true .
24) Retourne bool ( opt ) ? value < * opt : false .
25) Retourne ! ( opt > value ) .
26) Retourne ! ( value > opt ) .
27) Retourne bool ( opt ) ? value < * opt : false .
28) Retourne bool ( opt ) ? * opt < value : true .
29) Retourne ! ( opt < value ) .
30) Retourne ! ( value < opt ) .

Exceptions

1-6) (aucun)
19-30) (aucun)