Namespaces
Variants

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

Depuis fr.cppreference.net
 
 
Bibliothèque d'utilitaires
Support du langage
Support des types (types de base, RTTI)
Macros de test de fonctionnalités de la bibliothèque (C++20)
Utilitaires de programme
Fonctions variadiques
Support des coroutines (C++20)
Support des contrats (C++26)
Comparaison à trois voies
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilitaires généraux
Opérateurs relationnels (obsolète en C++20)
 
Objets fonction
Invocation de fonction
(C++17)(C++23)
Objet fonction identité
(C++20)
Wrappers d'opérateur transparents
(C++14)
(C++14)
(C++14)
(C++14)  
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)
(C++14)

Anciens binders et adaptateurs
(jusqu'à C++17*)
(jusqu'à C++17*)
(jusqu'à C++17*)
(jusqu'à C++17*)
(jusqu'à C++17*)  
(jusqu'à C++17*)
(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)
(jusqu'à C++20*)
(jusqu'à C++20*)
(jusqu'à C++17*)(jusqu'à C++17*)
(jusqu'à C++17*)(jusqu'à C++17*)

(jusqu'à C++17*)
(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)(jusqu'à C++17*)
(jusqu'à C++20*)
(jusqu'à 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 des objets reference_wrapper.

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 son résultat est convertible en bool.
2) Cette surcharge participe à la résolution de surcharge uniquement 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 un 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 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 uniquement si toutes les conditions suivantes sont satisfaites :
  • std::is_const_v<T> est false.
  • L'expression synth-three-way(lhs.get(), rhs.get()) est bien formée.
6) Compare un 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 à partir de operator<=> et operator== respectivement.

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