C++ concepts: Compare
The concept Compare
is a set of requirements expected by some of the standard
library facilities from the user-provided function object types.
The return value of the function call operation applied to an object of type Compare
, when contextually
converted to bool,
yields true if
the first argument of the call appears before the second in the strict weak ordering relationinduced by this Compare
type,
and false otherwise.
As with any BinaryPredicate
,
evaluation of that expression is not allowed to call non-const member functions of the dereferenced iterators.
Requirements
The type T
satisfies Compare
if
- The type
T
satisfiesBinaryPredicate
, and
Given
comp
, an object of typeCompare
equiv(a, b)
, an expression equivalent to!comp(a, b) && !comp(b, a)
The following expressions must be valid and have their specified effects
Expression | Return type | Requirements |
---|---|---|
comp(a, b) | implicitly convertible to bool | Establishes strict
weak ordering relation with the following properties
|
equiv(a, b) | bool | Establishes equivalence relationship with the following properties
|
Note: comp
induces a strict total ordering on the equivalence classes determined by equiv