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 (별도로 명시되지 않는 한)
표준 라이브러리
다음 표준 라이브러리 기능들은 Compare 타입이 아닌 BinaryPredicate 를 기대합니다.
|
연속된 중복 요소를 제거합니다
(
std::forward_list<T,Allocator>
의
public member function)
|
|
|
연속된 중복 요소를 제거합니다
(
std::list<T,Allocator>
의
public member function)
|
|
|
특정 범위에서 마지막 요소 시퀀스를 찾습니다
(function template) |
|
|
요소 집합 중 하나를 검색합니다
(function template) |
|
|
동일한(또는 주어진 조건자를 만족하는) 첫 번째 인접한 두 항목을 찾습니다
(function template) |
|
|
두 범위가 처음으로 달라지는 위치를 찾습니다
(function template) |
|
|
두 요소 집합이 동일한지 확인합니다
(function template) |
|
|
(C++11)
|
시퀀스가 다른 시퀀스의 순열인지 확인합니다
(function template) |
|
요소 범위의 첫 번째 발생을 검색합니다
(function template) |
|
|
범위에서 요소의 연속된 복사본이 처음 나타나는 위치를 검색합니다
(function template) |
|
|
범위에서 연속된 중복 요소를 제거합니다
(function template) |
|
|
연속된 중복이 없는 요소 범위의 복사본을 생성합니다
(function template) |
|
|
(C++17에서 사용 중단됨)
(C++20에서 제거됨)
|
사용자 정의
std::binary_negate
객체를 생성합니다
(function template) |
|
(C++11)
|
키로 해시된 고유 키의 컬렉션
(class template) |
|
(C++11)
|
키로 해시된 키-값 쌍의 컬렉션, 키는 고유함
(class template) |
|
(C++11)
|
키로 해시된 키의 컬렉션
(class template) |
|
(C++11)
|
키로 해시된 키-값 쌍의 컬렉션
(class template) |
결함 보고서
다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.
| DR | 적용 대상 | 게시된 동작 | 올바른 동작 |
|---|---|---|---|
|
LWG 2114
( P2167R3 ) |
C++98 |
반환 타입의
bool
변환 가능성이 구현체의 기대를 반영하기에
너무 약함 |
요구 사항 강화 |
| LWG 3031 | C++98 |
const
값에 대한 요구 사항이 불충분함
|
요구 사항 강화 |