Namespaces
Variants

std:: weak_order

From cppreference.net
Utilities library
헤더에 정의됨 <compare>
inline namespace /* unspecified */ {

inline constexpr /* unspecified */ weak_order = /* unspecified */ ;

}
(C++20부터)
호출 시그니처
template < class T, class U >

requires /* see below */

constexpr std:: weak_ordering weak_order ( T && t, U && u ) noexcept ( /* see below */ ) ;

3-way 비교를 사용하여 두 값을 비교하고 std::weak_ordering 타입의 결과를 생성합니다.

t u 를 표현식이라고 하고, T U 가 각각 decltype ( ( t ) ) decltype ( ( u ) ) 를 나타낸다고 할 때, std :: weak_order ( t, u ) 는 다음 표현식과 표현식 동등 합니다:

목차

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

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

IEEE 부동 소수점 타입의 엄격한 약한 순서

x y 가 동일한 IEEE 부동 소수점 타입의 값이고, weak_order_less ( x, y ) 가 C++ 표준에 의해 정의된 엄격한 약순서(strict weak order)에서 x y 보다 앞서는지를 나타내는 부울 결과라고 하자.

  • x y 모두 NaN이 아닌 경우, weak_order_less ( x, y ) == true 인 것은 x < y 인 경우와 동일합니다. 즉, 동일한 부동 소수점 값을 나타내는 모든 표현은 동등합니다;
  • x 가 음수 NaN이고 y 가 음수 NaN이 아닌 경우, weak_order_less ( x, y ) == true 입니다;
  • x 가 양수 NaN이 아니고 y 가 양수 NaN인 경우, weak_order_less ( x, y ) == true 입니다;
  • x y 가 모두 동일한 부호를 가진 NaN인 경우, ( weak_order_less ( x, y ) || weak_order_less ( y, x ) ) == false 입니다. 즉, 동일한 부호를 가진 모든 NaN은 동등합니다.

예제

참고 항목

6가지 연산자를 모두 지원하고 대체 불가능한 3-way 비교의 결과 타입
(클래스)
3-way 비교를 수행하고 std::strong_ordering 타입의 결과를 생성함
(커스터마이제이션 포인트 객체)
3-way 비교를 수행하고 std::partial_ordering 타입의 결과를 생성함
(커스터마이제이션 포인트 객체)
3-way 비교를 수행하고 std::weak_ordering 타입의 결과를 생성함, operator <=> 를 사용할 수 없는 경우에도 동작함
(커스터마이제이션 포인트 객체)