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

reference_wrapper 객체에 대한 비교 연산을 수행합니다.

1,2) 두 개의 reference_wrapper 객체를 비교합니다. 객체들은 lhs. get ( ) rhs. get ( ) 가 동일할 때에만 동등하게 비교됩니다.
1) 이 오버로드는 다음 표현식이 lhs. get ( ) == rhs. get ( ) 가 올바르게 형성되고 그 결과가 bool 로 변환 가능한 경우에만 오버로드 해결에 참여합니다.
2) 이 오버로드는 다음의 모든 조건이 만족될 때에만 오버로드 해결에 참여합니다:
  • std:: is_const_v < T > false 인 경우.
  • 표현식 lhs. get ( ) == rhs. get ( ) 가 유효하고 그 결과가 bool 로 변환 가능한 경우.
3) reference_wrapper 객체를 참조와 비교합니다. 매개변수들은 lhs. get ( ) ref 와 동일할 때에만 동등하게 비교됩니다.
이 오버로드는 다음 표현식이 lhs. get ( ) == ref 가 올바르게 형성되고 그 결과가 bool 로 변환 가능한 경우에만 오버로드 해결에 참여합니다.
4,5) 두 개의 reference_wrapper 객체를 synth-three-way 를 사용하여 비교합니다.
4) 이 오버로드는 다음 표현식이 synth-three-way ( lhs. get ( ) , rhs. get ( ) ) 올바르게 형성될 때만 오버로드 해결에 참여합니다.
5) 이 오버로드는 다음의 모든 조건이 만족될 때에만 오버로드 해결에 참여합니다:
6) reference_wrapper 객체를 참조와 비교합니다. 비교는 synth-three-way 를 사용하여 수행됩니다.
이 오버로드는 다음 표현식이 올바르게 형성된 경우에만 오버로드 해결에 참여합니다: synth-three-way ( lhs. get ( ) , ref ) .

< , <= , > , >= , 그리고 != 연산자들은 각각 합성됩니다 operator <=> operator == 로부터.

목차

매개변수

lhs, rhs - reference_wrapper 비교할 객체
ref - reference_wrapper 객체와 비교할 참조

반환값

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

예외

비교가 예외를 발생시킬 때와 무엇을 발생시키는지에 대해 설명합니다.

참고 사항

operator <=> 의 반환 타입은 추론됩니다 return 문으로부터, std:: reference_wrapper < T > 를 인스턴스화할 때 synth-three-way-result <T> 가 형성되지 않는 경우의 하드 에러를 방지하기 위함입니다.

기능 테스트 매크로 표준 기능
__cpp_lib_reference_wrapper 202403L (C++26) std::reference_wrapper 에 대한
비교 연산

예제