operator==, <=>(std::reference_wrapper)
cppreference.net에서 가져옴
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) 이 오버로드는 표현식 synth-three-way
(lhs.get(), rhs.get()) 가 올바른 형식인 경우에만 오버로드 해결에 참여합니다.5) 이 오버로드는 다음 모든 조건이 만족되는 경우에만 오버로드 해결에 참여합니다:
std::is_const_v<T>가false입니다.- 표현식 synth-three-way
(lhs.get(), rhs.get())가 올바른 형식입니다.
이 오버로드는 표현식 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
에 대한
비교 연산 |
예제
|
이 섹션은 불완전합니다
이유: 예제 없음 |