std::indirect_unary_predicate
From cppreference.com
                    
                                        
                    
                    
                                                            
                    | Defined in header  <iterator> | ||
| template<class F, class I> concept indirect_unary_predicate = | (since C++20) | |
The concept 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 I itself.
Semantic requirements
F and I model indirect_unary_predicate only if all concepts it subsumes are modeled.