std::compare_strong_order_fallback
cppreference.net에서
| 헤더 <compare>
|
||
inline namespace /* unspecified */ {
inline constexpr /* unspecified */
compare_strong_order_fallback = /* unspecified */;
}
|
에 정의됨 (C++20부터) | |
| 호출 시그니처 |
||
template< class T, class U >
requires /* see below */
constexpr std::strong_ordering
compare_strong_order_fallback( T&& t, U&& u ) noexcept(/* see below */);
|
(C++20부터) | |
부분 표현식 t과 u에 대해 삼자 비교를 수행하여 std::strong_ordering 타입의 결과를 생성합니다. 연산자 <=>를 사용할 수 없는 경우에도 마찬가지입니다.
std::decay_t<T>과 std::decay_t<U>이 같은 타입인 경우, std::compare_strong_order_fallback(t, u)는 다음에 대해 표현식-동등합니다.
std::strong_order(t, u): 잘 구성된 표현식인 경우;- 그렇지 않으면,
t == u ? std::strong_ordering::equal :t < u ? std::strong_ordering::less :std::strong_ordering::greater
- 표현식
t == u과t < u이 모두 잘 구성되어 있고,decltype(t == u)과decltype(t < u)각각이 부울-테스트 가능을 모델링하는 경우. 단,t과u은 오직 한 번만 평가됩니다.
다른 모든 경우에 std::compare_strong_order_fallback(t, u)는 잘못 구성되며, 템플릿 인스턴스화의 즉시 컨텍스트에 나타날 경우 치환 실패가 발생할 수 있습니다.
커스터마이제이션 포인트 객체
이름
std::compare_strong_order_fallback
은
사용자 정의 지점 객체
를 나타내며, 이는
함수 객체
의 const
리터럴
semiregular
클래스 타입입니다. 자세한 내용은
CustomizationPointObject
를 참조하십시오.
예제
|
이 섹션은 불완전합니다
이유: 예제가 없음 |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++20 |
폴백 메커니즘이 반환 타입이
bool 로 변환 가능하기만을 요구함 |
제약 조건이 강화됨 |
참고 항목
|
(C++20)
|
3방향 비교를 수행하고
std::strong_ordering
타입의 결과를 생성함
(커스터마이제이션 포인트 객체) |