C++ named requirements: BinaryPredicate
|
|
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
BinaryPredicate 는 표준 라이브러리 기능 중 일부가 사용자 제공 인수에서 기대하는 요구 사항들의 집합입니다.
BinaryPredicate
bin_pred
와 한 쌍의 반복자
iter1
과
iter2
, 또는 반복자
iter
와 (
const
일 수 있는) 값
value
가 주어졌을 때, 표현식
bin_pred
(
*
iter1,
*
iter2
)
또는 각각
bin_pred
(
*
iter, value
)
의 타입과 값 범주는
BooleanTestable
요구 사항을 충족해야 합니다.
또한, 해당 표현식의 평가는 역참조된 반복자의 비상수 멤버 함수를 호출할 수 없습니다; 구문적으로, 술어(predicate)는
const
객체 인수를 수용해야 하며, 인수가
const
인지 비-
const
인지에 관계없이 동일한 동작을 가져야 합니다.
요구사항
- Predicate
- CopyConstructible (별도로 명시되지 않는 한)
표준 라이브러리
다음 표준 라이브러리 기능들은 BinaryPredicate를 필요로 하며, 이는 Compare 타입이 아닙니다.
| 연속된 중복 요소들을 제거합니다 ( std::forward_list<T,Allocator>의 공개 멤버 함수)
| |
| 연속된 중복 요소들을 제거합니다 ( std::list<T,Allocator>의 공개 멤버 함수)
| |
| 특정 범위에서 마지막으로 나타나는 요소 시퀀스를 찾습니다 (함수 템플릿 & 알고리즘 함수 객체) | |
(C++20) |
|
| 요소 집합 중 하나를 검색합니다 (함수 템플릿 & 알고리즘 함수 객체) | |
(C++20) |
|
| 같거나 (주어진 조건을 만족하는) 첫 번째 인접한 두 항목을 찾습니다 (함수 템플릿 & 알고리즘 함수 객체) | |
(C++20) |
|
| 두 범위가 다른 첫 번째 위치를 찾습니다 (함수 템플릿 & 알고리즘 함수 객체) | |
(C++20) |
|
| 두 요소 집합이 같은지 판단합니다 (함수 템플릿 & 알고리즘 함수 객체) | |
(C++20) |
|
(C++11) |
시퀀스가 다른 시퀀스의 순열인지 판단합니다 (함수 템플릿 & 알고리즘 함수 객체) |
(C++20) |
|
| 요소 범위가 처음 나타나는 위치를 검색합니다 (함수 템플릿 & 알고리즘 함수 객체) | |
(C++20) |
|
| 범위 내에서 요소의 연속된 복사본이 처음 나타나는 위치를 검색합니다 (함수 템플릿 & 알고리즘 함수 객체) | |
(C++20) |
|
| 범위 내의 연속된 중복 요소들을 제거합니다 (함수 템플릿 & 알고리즘 함수 객체) | |
(C++20) |
|
| 연속된 중복이 없는 요소 범위의 복사본을 생성합니다 (함수 템플릿 & 알고리즘 함수 객체) | |
(C++20) |
|
(C++17에서 비권장됨)(C++20에서 제거됨) |
사용자 정의 std::binary_negate 객체를 구축합니다 (함수 템플릿) |
(C++11) |
키로 해시된 고유 키들의 컬렉션 (클래스 템플릿) |
(C++11) |
키-값 쌍의 컬렉션, 키로 해시됨, 키는 고유함 (클래스 템플릿) |
(C++11) |
키로 해시된 키들의 컬렉션 (클래스 템플릿) |
(C++11) |
키로 해시된 키-값 쌍의 컬렉션 (클래스 템플릿) |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++98 |
반환 타입의
bool
변환 가능성이 구현체의 기대를 반영하기에
너무 약함 |
요구 사항 강화 |
| LWG 3031 | C++98 |
const
값에 대한 요구 사항이 불충분함
|
요구 사항 강화 |