C++ concepts: BinaryPredicate

From cppreference.com

The concept BinaryPredicate is a set of requirements expected by some of the standard library facilities from the user-provided arguments.

Given a BinaryPredicate bin_pred and a pair of iterators iter1 and iter2 or an iterator iter and a value value, the expression bin_pred(*iter1, *iter2) or, respectively, bin_pred(*iter, value), must be contextually convertible to bool.

In addition, evaluation of that expression is not allowed to call non-const member functions of the dereferenced iterators.

[edit] Requirements

[edit] Standard library

The following standard library facilities expect a BinaryPredicate which isn't a Compare type.

removes consecutive duplicate elements
(public member function of std::forward_list)
removes consecutive duplicate elements
(public member function of std::list)
finds the last sequence of elements in a certain range
(function template)
searches for any one of a set of elements
(function template)
finds two identical (or some other relationship) items adjacent to each other
(function template)
finds the first position where two ranges differ
(function template)
determines if two sets of elements are the same
(function template)
determines if a sequence is a permutation of another sequence
(function template)
searches for a range of elements
(function template)
searches for a number consecutive copies of an element in a range
(function template)
removes consecutive duplicate elements in a range
(function template)
creates a copy of some range of elements that contains no consecutive duplicates
(function template)
constructs custom std::binary_negate object
(function template)
(since C++11)
collection of unique keys, hashed by keys
(class template)
(since C++11)
collection of key-value pairs, hashed by keys, keys are unique
(class template)
(since C++11)
collection of keys, hashed by keys
(class template)
(since C++11)
collection of key-value pairs, hashed by keys
(class template)