C++ named requirements: LessThanComparable
해당 타입은
<
연산자와 함께 작동해야 하며 결과는 표준 의미론을 가져야 합니다.
목차 |
요구사항
타입
T
가 다음 조건을 만족하면
LessThanComparable
을 만족합니다: 타입
T
또는
const
T
(C++11부터)
인 표현식
a
,
b
,
c
가 주어졌을 때, 다음 표현식이 유효하며 명시된 효과를 가져야 합니다:
| 표현식 | 타입 | 효과 |
|---|---|---|
| a < b |
BooleanTestable
요구사항 충족
(C++20 이전) |
다음 속성을 가진
엄격한 약순서
관계를 설정함:
|
boolean-testable
개념 모델
(C++20 이후) |
참고 사항
이 요구사항을 충족하기 위해, 내장된 comparison operators 가 없는 타입들은 사용자 정의 operator < 를 제공해야 합니다.
EqualityComparable 와 LessThanComparable 요구 사항을 모두 만족하는 타입에 대해, C++ 표준 라이브러리는 다음과 같은 구분을 합니다
- 동등성(Equality) , 이는 표현식 a == b 의 값이며
- 동치성(Equivalence) , 이는 표현식 ! ( a < b ) && ! ( b < a ) 의 값입니다.
결함 보고서
다음의 동작 변경 결함 보고서는 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++98 | bool 변환 가능성이 구현들의 기대를 반영하기에 너무 약함 | 요구 사항 강화됨 |
참고 항목
|
순서 관계를 설정하는
BinaryPredicate
(명명된 요구사항) |
|
|
(C++20)
|
relation
이 엄격한 약순서를 부과함을 명시
(컨셉) |