cpp/iterator/indirect unary predicate

The concept specifies requirements for algorithms that call unary predicates as their arguments. The key difference between this concept and std is that it is applied to the type that references, rather than  itself.

Semantic requirements
and model  only if all concepts it subsumes are modeled.