Namespaces
Variants

std::partial_ordering

cppreference.net에서
 
 
유틸리티 라이브러리
언어 지원
타입 지원 (기본 타입, RTTI)
라이브러리 기능-테스트 매크로 (C++20)
프로그램 유틸리티
가변 인자 함수
코루틴 지원 (C++20)
계약 지원 (C++26)
삼방 비교
(C++20)
(C++20) (C++20) (C++20)    
(C++20) (C++20) (C++20)

일반 유틸리티
관계 연산자 (C++20에서 폐기됨)
 
헤더 <compare>
class partial_ordering;
에 정의됨 (C++20부터)

클래스 타입 std::partial_ordering는 다음을 수행하는 삼방 비교의 결과 타입입니다:

  • 여섯 개의 관계 연산자 (==, !=, <, <=, >, >=)를 모두 허용합니다.
  • 대체 가능성을 의미하지 않습니다: a가 b와 동등한 경우, f(a)는 f(b)와 동등하지 않을 수 있습니다. 여기서 f는 인수의 public const 멤버를 통해 접근 가능한 비교-중요 상태만 읽는 함수를 나타냅니다. 즉, 동등한 값이라도 구별될 수 있습니다.
  • 비교 불가능한 값을 허용합니다: a < b, a == b, a > b 모두 false일 수 있습니다.

상수

타입 std::partial_ordering 은 네 가지 유효한 값을 가지며, 해당 타입의 const static 데이터 멤버로 구현됩니다:

이름 정의
inline constexpr std :: partial_ordering less
[static]
미만(보다 앞서 정렬됨) 관계를 나타내는 유효한 값
(공개 정적 멤버 상수)
inline constexpr std :: partial_ordering equivalent
[static]
동등함(앞서 정렬되지도 않고 뒤에 정렬되지도 않음)을 나타내는 유효한 값
(공개 정적 멤버 상수)
inline constexpr std :: partial_ordering greater
[static]
초과(보다 뒤에 정렬됨) 관계를 나타내는 유효한 값
(공개 정적 멤버 상수)
inline constexpr std :: partial_ordering unordered
[static]
비교 불가능한 값과의 관계를 나타내는 유효한 값
(공개 정적 멤버 상수)

변환

std::partial_ordering 는 다른 비교 범주 타입으로 암시적으로 변환될 수 없지만, std::strong_ordering 과 std::weak_ordering 모두 partial_ordering 으로 암시적으로 변환 가능합니다.

비교

비교 연산자는 이 타입의 값과 리터럴 ​ 0 ​ 사이에 정의됩니다. 이를 통해 a <=> b == 0 또는 a <=> b < 0 와 같은 표현식을 사용하여 삼중 비교 연산자의 결과를 부울 관계로 변환할 수 있습니다; 자세한 내용은 std::is_eq , std::is_lt 등을 참조하십시오.

이러한 함수들은 일반적인 unqualified lookup 이나 qualified lookup 으로는 보이지 않으며, std::partial_ordering 이 인자들의 연관 클래스일 때에만 argument-dependent lookup 을 통해서만 찾을 수 있습니다.

partial_ordering 을 정수 리터럴 ​ 0 ​ 이외의 값과 비교하려는 프로그램의 동작은 정의되지 않습니다.

operator== operator< operator> operator<= operator>= operator<=>
zero 또는 partial_ordering 과 비교
(함수)

operator==

friend constexpr bool operator == ( partial_ordering v, /*unspecified*/ u ) noexcept ;
(1)
friend constexpr bool
operator == ( partial_ordering v, partial_ordering w ) noexcept = default ;
(2)

매개변수

v, w - std::partial_ordering 값을 확인할 값들
u - 리터럴 0 인수를 허용하는 모든 타입의 사용되지 않는 매개변수

반환 값

1) true 만약 v 가 equivalent 인 경우, false 만약 v 가 less , greater , 또는 unordered 인 경우
2) true 만약 두 매개변수가 동일한 값을 가지는 경우, false 그렇지 않은 경우

operator<

friend constexpr bool operator < ( partial_ordering v, /*unspecified*/ u ) noexcept ;
(1)
friend constexpr bool operator < ( /*unspecified*/ u, partial_ordering v ) noexcept ;
(2)

매개변수

v - 확인할 std::partial_ordering 값
u - 리터럴 0 인수를 받아들이는 임의의 타입의 사용되지 않는 매개변수

반환 값

1) true 만약 v 가 less 이면, 그리고 false 만약 v 가 greater , equivalent , 또는 unordered 이면
2) true 만약 v 가 greater 이면, 그리고 false 만약 v 가 less , equivalent , 또는 unordered 이면

operator<=

friend constexpr bool operator <= ( partial_ordering v, /*unspecified*/ u ) noexcept ;
(1)
friend constexpr bool operator <= ( /*unspecified*/ u, partial_ordering v ) noexcept ;
(2)

매개변수

v - 확인할 std::partial_ordering 값
u - 리터럴 0 인수를 받아들이는 임의의 타입의 사용되지 않는 매개변수

반환 값

1) true 만약 v 가 less 이거나 equivalent 인 경우, 그리고 false 만약 v 가 greater 이거나 unordered 인 경우
2) true 만약 v 가 greater 이거나 equivalent 인 경우, 그리고 false 만약 v 가 less 이거나 unordered 인 경우

operator>

friend constexpr bool operator > ( partial_ordering v, /*unspecified*/ u ) noexcept ;
(1)
friend constexpr bool operator > ( /*unspecified*/ u, partial_ordering v ) noexcept ;
(2)

매개변수

v - 확인할 std::partial_ordering 값
u - 리터럴 0 인수를 받아들이는 임의의 타입의 사용되지 않는 매개변수

반환 값

1) true 만약 v 가 greater 이고, false 만약 v 가 less , equivalent , 또는 unordered 인 경우
2) true 만약 v 가 less 이고, false 만약 v 가 greater , equivalent , 또는 unordered 인 경우

operator>=

friend constexpr bool operator >= ( partial_ordering v, /*unspecified*/ u ) noexcept ;
(1)
friend constexpr bool operator >= ( /*unspecified*/ u, partial_ordering v ) noexcept ;
(2)

매개변수

v - 확인할 std::partial_ordering 값
u - 리터럴 0 인수를 받아들이는 임의의 타입의 사용되지 않는 매개변수

반환 값

1) true v 가 greater 이거나 equivalent 인 경우, 그리고 false v 가 less 이거나 unordered 인 경우
2) true v 가 less 이거나 equivalent 인 경우, 그리고 false v 가 greater 이거나 unordered 인 경우

operator<=>

friend constexpr partial_ordering operator <=> ( partial_ordering v, /*unspecified*/ u ) noexcept ;
(1)
friend constexpr partial_ordering operator <=> ( /*unspecified*/ u, partial_ordering v ) noexcept ;
(2)

매개변수

v - 확인할 std::partial_ordering 값
u - 리터럴 0 인수를 받아들이는 임의의 타입의 사용되지 않는 매개변수

반환 값

1) v .
2) greater 만약 v 가 less 인 경우, less 만약 v 가 greater 인 경우, 그 외의 경우 v .

참고 사항

부동 소수점 값들 간의 내장 operator<=> 는 다음 순서를 사용합니다: 양의 영과 음의 영은 equivalent 로 비교되지만 구별될 수 있으며, NaN 값은 다른 모든 값과 unordered 로 비교됩니다.

예제

참고 항목

6개의 연산자를 모두 지원하고 대체 가능한 3-way 비교의 결과 타입
(class)
6개의 연산자를 모두 지원하고 대체 불가능한 3-way 비교의 결과 타입
(class)