cpp/named req/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 a type satisfying, when contextually converted to , yields if the first argument of the call appears before the second in the  induced by this type, and  otherwise.

As with any, evaluation of that expression is not allowed to call non-const functions through the dereferenced iterators.

Requirements
The type satisfies  if


 * The type satisfies, and

Given
 * , an object of type
 * , an expression-equivalent to.

The following expressions must be valid and have their specified effects:

Note: induces a  on the equivalence classes determined by.

Standard library
The following standard library facilities expect a type.