##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# C++ concepts: BinaryPredicate

From cppreference.com
< cpp‎ | concept

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

- `Predicate`
- `CopyConstructible` (unless otherwise specified)

### [edit] Standard library

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

unique | removes consecutive duplicate elements (public member function of `std::forward_list`) [edit]
unique | removes consecutive duplicate elements (public member function of `std::list`) [edit]
find_end | finds the last sequence of elements in a certain range (function template) [edit]
find_first_of | searches for any one of a set of elements (function template) [edit]
adjacent_find | finds the first two adjacent items that are equal (or satisfy a given predicate) (function template) [edit]
mismatch | finds the first position where two ranges differ (function template) [edit]
equal | determines if two sets of elements are the same (function template) [edit]
is_permutation (C++11) | determines if a sequence is a permutation of another sequence (function template) [edit]
search | searches for a range of elements (function template) [edit]
search_n | searches for a number consecutive copies of an element in a range (function template) [edit]
unique | removes consecutive duplicate elements in a range (function template) [edit]
unique_copy | creates a copy of some range of elements that contains no consecutive duplicates (function template) [edit]
not2 (deprecated) | constructs custom std::binary_negate object (function template) [edit]
unordered_set (since C++11) | collection of unique keys, hashed by keys (class template) [edit]
unordered_map (since C++11) | collection of key-value pairs, hashed by keys, keys are unique (class template) [edit]
unordered_multiset (since C++11) | collection of keys, hashed by keys (class template) [edit]
unordered_multimap (since C++11) | collection of key-value pairs, hashed by keys (class template) [edit]

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/concept/BinaryPredicate&oldid=67874"