Namespaces
Variants

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

De es.cppreference.net
 
 
Biblioteca de utilidades
Soporte del lenguaje
Soporte de tipos (tipos básicos, RTTI)
Macros de prueba de características de la biblioteca (C++20)
Utilidades de programa
Funciones variádicas
Soporte de corrutinas (C++20)
Soporte de contratos (C++26)
Comparación de tres vías
(C++20)
(C++20)(C++20)(C++20)    
(C++20)(C++20)(C++20)

Utilidades generales
Operadores relacionales (obsoleto en C++20)
 
Objetos función
Invocación de función
(C++17)(C++23)
Objeto función identidad
(C++20)
Envoltorios de operadores transparentes
(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)

Antiguos adaptadores y enlazadores
(hasta C++17*)
(hasta C++17*)
(hasta C++17*)
(hasta C++17*)  
(hasta C++17*)
(hasta C++17*)(hasta C++17*)(hasta C++17*)(hasta C++17*)
(hasta C++20*)
(hasta C++20*)
(hasta C++17*)(hasta C++17*)
(hasta C++17*)(hasta C++17*)

(hasta C++17*)
(hasta C++17*)(hasta C++17*)(hasta C++17*)(hasta C++17*)
(hasta C++20*)
(hasta 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 se comparan 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() es válida 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() es válida y su resultado es convertible a bool.
3) Compara un objeto reference_wrapper con una referencia. Los parámetros se comparan 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 es válida y su resultado es convertible a bool.
4,5) Compara dos objetos reference_wrapper usando 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()) es válida.
5) 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 synth-three-way(lhs.get(), rhs.get()) es válida.
6) Compara un 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) es válida.

Los operadores <, <=, >, >= y != son sintetizados a partir de operator<=> y operator== respectivamente.

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