Defined in header
indirect_unary_predicate specifies requirements for algorithms that call unary predicates as their arguments. The key difference between this concept and std::predicate is that it is applied to the type that
I references, rather than
 Semantic requirements
indirect_unary_predicate only if all concepts it subsumes are modeled.