Namespaces
Variants

C++ named requirements: BinaryPredicate

From 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 인지에 관계없이 동일한 동작을 가져야 합니다.

요구사항

표준 라이브러리

다음 표준 라이브러리 기능들은 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)
시퀀스가 다른 시퀀스의 순열인지 확인합니다
(function template)
요소 범위의 첫 번째 발생을 검색합니다
(function template)
범위에서 요소의 연속된 복사본이 처음 나타나는 위치를 검색합니다
(function template)
범위에서 연속된 중복 요소를 제거합니다
(function template)
연속된 중복이 없는 요소 범위의 복사본을 생성합니다
(function template)
(C++17에서 사용 중단됨) (C++20에서 제거됨)
사용자 정의 std::binary_negate 객체를 생성합니다
(function template)
키로 해시된 고유 키의 컬렉션
(class template)
키로 해시된 키-값 쌍의 컬렉션, 키는 고유함
(class template)
키로 해시된 키의 컬렉션
(class template)
키로 해시된 키-값 쌍의 컬렉션
(class template)

결함 보고서

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

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