Namespaces
Variants

C++ named requirements: BinaryPredicate

From ko.cppreference.net
C++ named requirements

BinaryPredicate 는 표준 라이브러리 기능 중 일부가 사용자 제공 인수에서 기대하는 요구 사항들의 집합입니다.

BinaryPredicate bin_pred 와 한 쌍의 반복자 iter1 과 iter2 , 또는 반복자 iter 와 ( const 일 수 있는) 값 value 가 주어졌을 때, 표현식 bin_pred ( * iter1, * iter2 ) 또는 각각 bin_pred ( * iter, value ) 의 타입과 값 범주는 BooleanTestable 요구 사항을 충족해야 합니다.

또한, 해당 표현식의 평가는 역참조된 반복자의 비상수 멤버 함수를 호출할 수 없습니다; 구문적으로, 술어(predicate)는 const 객체 인수를 수용해야 하며, 인수가 const 인지 비- const 인지에 관계없이 동일한 동작을 가져야 합니다.

요구사항

표준 라이브러리

다음 표준 라이브러리 기능들은 BinaryPredicate를 필요로 하며, 이는 Compare 타입이 아닙니다.

연속된 중복 요소들을 제거합니다
(std::forward_list<T,Allocator>의 공개 멤버 함수)
연속된 중복 요소들을 제거합니다
(std::list<T,Allocator>의 공개 멤버 함수)
특정 범위에서 마지막으로 나타나는 요소 시퀀스를 찾습니다
(함수 템플릿 & 알고리즘 함수 객체)
요소 집합 중 하나를 검색합니다
(함수 템플릿 & 알고리즘 함수 객체)
같거나 (주어진 조건을 만족하는) 첫 번째 인접한 두 항목을 찾습니다
(함수 템플릿 & 알고리즘 함수 객체)
두 범위가 다른 첫 번째 위치를 찾습니다
(함수 템플릿 & 알고리즘 함수 객체)
두 요소 집합이 같은지 판단합니다
(함수 템플릿 & 알고리즘 함수 객체)
시퀀스가 다른 시퀀스의 순열인지 판단합니다
(함수 템플릿 & 알고리즘 함수 객체)
요소 범위가 처음 나타나는 위치를 검색합니다
(함수 템플릿 & 알고리즘 함수 객체)
범위 내에서 요소의 연속된 복사본이 처음 나타나는 위치를 검색합니다
(함수 템플릿 & 알고리즘 함수 객체)
범위 내의 연속된 중복 요소들을 제거합니다
(함수 템플릿 & 알고리즘 함수 객체)
연속된 중복이 없는 요소 범위의 복사본을 생성합니다
(함수 템플릿 & 알고리즘 함수 객체)
(C++17에서 비권장됨)(C++20에서 제거됨)
사용자 정의 std::binary_negate 객체를 구축합니다
(함수 템플릿)
키로 해시된 고유 키들의 컬렉션
(클래스 템플릿)
키-값 쌍의 컬렉션, 키로 해시됨, 키는 고유함
(클래스 템플릿)
키로 해시된 키들의 컬렉션
(클래스 템플릿)
키로 해시된 키-값 쌍의 컬렉션
(클래스 템플릿)

결함 보고서

다음의 동작 변경 결함 보고서들은 이전에 발표된 C++ 표준에 소급 적용되었습니다.

DR 적용 대상 게시된 동작 올바른 동작
LWG 2114
( P2167R3 )
C++98 반환 타입의 bool 변환 가능성이 구현체의 기대를 반영하기에
너무 약함
요구 사항 강화
LWG 3031 C++98 const 값에 대한 요구 사항이 불충분함 요구 사항 강화