Namespaces
Variants

std::compare_partial_order_fallback

cppreference.net에서
 
 
유틸리티 라이브러리
일반 유틸리티
관계 연산자 (C++20에서 폐지됨)
정수 비교 함수
(C++20)(C++20)(C++20)    
(C++20)
스왑 및 타입 연산
(C++14)
(C++11)
(C++11)
(C++11)
(C++17)
공통 어휘 타입
(C++11)
(C++17)
(C++17)
(C++17)
(C++11)
(C++17)
(C++23)



 
헤더 <compare>
inline namespace /* unspecified */ {
    inline constexpr /* unspecified */
        compare_partial_order_fallback = /* unspecified */;
}
(C++20부터)에 정의됨
호출 시그니처
template< class T, class U >
    requires /* see below */
constexpr std::partial_ordering
    compare_partial_order_fallback( T&& t, U&& u ) noexcept(/* see below */);
(C++20부터)

부분 표현식 t과(와) u에 대해 std::partial_ordering 타입의 결과를 생성하는 삼방 비교를 수행합니다. 연산자 <=>를 사용할 수 없는 경우에도 가능합니다.

std::decay_t<T>과(와) std::decay_t<U>>이 동일한 타입인 경우, std::compare_partial_order_fallback(t, u)는 표현식-동등합니다:

  • std::partial_order(t, u)잘 구성된 표현식인 경우;
  • 그렇지 않으면, 표현식 t == u ? std::partial_ordering::equivalent :
    t < u ? std::partial_ordering::less :
    u < t ? std::partial_ordering::greater :
             std::partial_ordering::unordered
    , t == u 및 t < u이 모두 잘 구성되고 u < t, decltype(t == u) 및 decltype(t < u) 각각이 decltype(u < t)부울-테스트 가능을 모델링하는 경우, 단 과(와) t은 한 번만 평가됩니다.u다른 모든 경우에

는 잘못 구성되며, 템플릿 인스턴스화의 즉시 컨텍스트에 나타날 때 std::compare_partial_order_fallback(t, u)대체 실패가 발생할 수 있습니다.

커스터마이제이션 포인트 객체

이름 std::compare_partial_order_fallback 는 사용자 지정 지점 객체 를 나타내며, 이는 함수 객체 의 const 리터럴 semiregular 클래스 타입입니다. 자세한 내용은 CustomizationPointObject 를 참조하십시오.

예제

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 2114
( P2167R3 )
C++20 폴백 메커니즘이 반환 타입이
bool 로 변환 가능하기만을 요구함
제약 조건이 강화됨
LWG 3465 C++20 폴백 메커니즘이 u < t 가 형성 가능할 것을 요구하지 않음 요구됨
LWG 4157 C++20 P2167R3 이 LWG 이슈 3465 의 해결을 덮어씀 해결이 복원됨

참고 항목

3방향 비교를 수행하고 std::partial_ordering 타입의 결과를 생성함
(커스터마이제이션 포인트 객체)