Namespaces
Variants

operator==, <=> (std::reference_wrapper)

From cppreference.net
Utilities library
Function objects
Function invocation
(C++17) (C++23)
Identity function object
(C++20)
Old binders and adaptors
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
( until C++17* ) ( until C++17* )
( until C++17* ) ( until C++17* )

( until C++17* )
( until C++17* ) ( until C++17* ) ( until C++17* ) ( until C++17* )
( until C++20* )
( until C++20* )
friend constexpr bool
operator == ( reference_wrapper lhs, reference_wrapper rhs ) ;
(1) (depuis C++26)
friend constexpr bool
operator == ( reference_wrapper lhs, reference_wrapper < const T > rhs ) ;
(2) (depuis C++26)
friend constexpr bool
operator == ( reference_wrapper lhs, const T & ref ) ;
(3) (depuis C++26)
friend constexpr auto
operator <=> ( reference_wrapper lhs, reference_wrapper rhs ) ;
(4) (depuis C++26)
friend constexpr auto
operator <=> ( reference_wrapper lhs, reference_wrapper < const T > rhs ) ;
(5) (depuis C++26)
friend constexpr auto
operator <=> ( reference_wrapper lhs, const T & ref ) ;
(6) (depuis C++26)

Effectue des opérations de comparaison sur reference_wrapper objets.

1,2) Compare deux objets reference_wrapper . Les objets sont égaux si et seulement si lhs. get ( ) et rhs. get ( ) sont égaux.
1) Cette surcharge participe à la résolution de surcharge uniquement si l'expression lhs. get ( ) == rhs. get ( ) est bien formée et que son résultat est convertible en bool .
2) Cette surcharge participe à la résolution de surcharge seulement si toutes les conditions suivantes sont satisfaites :
  • std:: is_const_v < T > est false .
  • L'expression lhs. get ( ) == rhs. get ( ) est bien formée et son résultat est convertible en bool .
3) Compare l'objet reference_wrapper avec une référence. Les paramètres sont égaux si et seulement si lhs. get ( ) est égal à ref .
Cette surcharge participe à la résolution de surcharge uniquement si l'expression lhs. get ( ) == ref est bien formée et que son résultat est convertible en bool .
4,5) Compare deux objets reference_wrapper en utilisant synth-three-way .
4) Cette surcharge participe à la résolution de surcharge uniquement si l'expression synth-three-way ( lhs. get ( ) , rhs. get ( ) ) est bien formée.
5) Cette surcharge participe à la résolution de surcharge seulement si toutes les conditions suivantes sont satisfaites :
6) Compare l'objet reference_wrapper avec une référence en utilisant synth-three-way .
Cette surcharge participe à la résolution de surcharge uniquement si l'expression synth-three-way ( lhs. get ( ) , ref ) est bien formée.

Les opérateurs < , <= , > , >= et != sont synthétisés respectivement à partir de operator <=> et operator == .

Table des matières

Paramètres

lhs, rhs - reference_wrapper objet à comparer
ref - référence à comparer avec l'objet reference_wrapper

Valeur de retour

1,2) lhs. get ( ) == rhs. get ( ) .
3) lhs. get ( ) == ref .
4,5) synth-three-way ( lhs. get ( ) , rhs. get ( ) ) .
6) synth-three-way ( lhs. get ( ) , ref ) .

Exceptions

Lance lorsque et ce que la comparaison lance.

Notes

Les types de retour de operator <=> sont déduits des instructions return pour éviter les erreurs de compilation lors de l'instanciation d'un std:: reference_wrapper < T > lorsque synth-three-way-result <T> est mal formé.

Macro de test de fonctionnalité Valeur Std Fonctionnalité
__cpp_lib_reference_wrapper 202403L (C++26) Comparaisons pour std::reference_wrapper

Exemple