C++ named requirements: BinaryPredicate
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 (possibly const) (since C++20) 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; syntactically, the predicate must accept const object arguments, with the same behavior regardless of whether its arguments are const or non-const (since C++20).
Requirements
- Predicate
- CopyConstructible (unless otherwise specified)
Standard library
The following standard library facilities expect a BinaryPredicate which isn't a Compare type.
pub | unique(C++11) | removes consecutive duplicate elements (public member function of std::forward_list<T,Allocator>) |
pub | unique | removes consecutive duplicate elements (public member function of std::list<T,Allocator>) |
pub | find_end | finds the last sequence of elements in a certain range |
pub | find_first_of | searches for any one of a set of elements |
pub | adjacent_find | finds the first two adjacent items that are equal (or satisfy a given predicate) |
pub | mismatch | finds the first position where two ranges differ |
pub | equal | determines if two sets of elements are the same |
pub | is_permutation(C++11) | determines if a sequence is a permutation of another sequence |
pub | search | searches for a range of elements |
pub | search_n | searches a range for a number of consecutive copies of an element |
pub | unique | removes consecutive duplicate elements in a range (function template) |
pub | unique_copy | creates a copy of some range of elements that contains no consecutive duplicates |
pub | not2 (deprecated in C++17) (removed in C++20) | constructs custom std::binary_negate object |
pub | unordered_set(C++11) | collection of unique keys, hashed by keys |
pub | unordered_map(C++11) | collection of key-value pairs, hashed by keys, keys are unique |
pub | unordered_multiset(C++11) | collection of keys, hashed by keys |
pub | unordered_multimap(C++11) | collection of key-value pairs, hashed by keys |