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) (desde C++26)
friend constexpr bool
operator == ( reference_wrapper lhs, reference_wrapper < const T > rhs ) ;
(2) (desde C++26)
friend constexpr bool
operator == ( reference_wrapper lhs, const T & ref ) ;
(3) (desde C++26)
friend constexpr auto
operator <=> ( reference_wrapper lhs, reference_wrapper rhs ) ;
(4) (desde C++26)
friend constexpr auto
operator <=> ( reference_wrapper lhs, reference_wrapper < const T > rhs ) ;
(5) (desde C++26)
friend constexpr auto
operator <=> ( reference_wrapper lhs, const T & ref ) ;
(6) (desde C++26)

Realiza operaciones de comparación en objetos reference_wrapper .

1,2) Compara dos objetos reference_wrapper . Los objetos son iguales si y solo si lhs. get ( ) y rhs. get ( ) son iguales.
1) Esta sobrecarga participa en la resolución de sobrecarga solo si la expresión lhs. get ( ) == rhs. get ( ) está bien formada y su resultado es convertible a bool .
2) Esta sobrecarga participa en la resolución de sobrecarga solo si se cumplen todas las siguientes condiciones:
  • std:: is_const_v < T > es false .
  • La expresión lhs. get ( ) == rhs. get ( ) está bien formada y su resultado es convertible a bool .
3) Compara un objeto reference_wrapper con una referencia. Los parámetros son iguales si y solo si lhs. get ( ) es igual a ref .
Esta sobrecarga participa en la resolución de sobrecarga solo si la expresión lhs. get ( ) == ref está bien formada y su resultado es convertible a bool .
4,5) Compara dos objetos reference_wrapper utilizando synth-three-way .
4) Esta sobrecarga participa en la resolución de sobrecarga solo si la expresión synth-three-way ( lhs. get ( ) , rhs. get ( ) ) está bien formada.
5) Esta sobrecarga participa en la resolución de sobrecarga solo si se satisfacen todas las siguientes condiciones:
6) Compara el objeto reference_wrapper con una referencia usando synth-three-way .
Esta sobrecarga participa en la resolución de sobrecarga solo si la expresión synth-three-way ( lhs. get ( ) , ref ) está bien formada.

Los operadores < , <= , > , >= y != se sintetizan a partir de operator <=> y operator == respectivamente.

Contenidos

Parámetros

lhs, rhs - reference_wrapper objeto a comparar
ref - referencia a comparar con el objeto reference_wrapper

Valor de retorno

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 ) .

Excepciones

Lanza cuando y lo que la comparación lanza.

Notas

Los tipos de retorno de operator <=> se deducen de las sentencias return para evitar errores graves al instanciar un std:: reference_wrapper < T > cuando synth-three-way-result <T> está mal formado.

Macro de prueba de características Valor Std Característica
__cpp_lib_reference_wrapper 202403L (C++26) Comparaciones para std::reference_wrapper

Ejemplo