Namespaces
Variants

std:: compare_partial_order_fallback

From cppreference.net
Utilities library
헤더 파일에 정의됨 <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 ) 각각이 boolean-testable 개념을 만족하는 경우. 단, t u 는 한 번만 평가됨.

다른 모든 경우에는, std :: compare_partial_order_fallback ( t, u ) 는 형식이 올바르지 않아(ill-formed), 이로 인해 템플릿 인스턴스화의 직접적인 맥락에서 나타날 때 치환 실패(substitution failure) 가 발생할 수 있습니다.

목차

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

이름 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 타입의 결과를 생성함
(커스터마이제이션 포인트 객체)