|  | 
| template<typename I , typename S , typename F , typename P  = ident, requires  = (InputIterator<I>() && Sentinel<S, I>() &&                    IndirectCallable<F, projected<I, P>>())> | 
| I | operator() (I begin, S end, F fun_, P proj_=P{}) const | 
|  | 
| template<typename Rng , typename F , typename P  = ident, typename I  = range_iterator_t<Rng>, requires  = (InputRange<Rng>() && IndirectCallable<F, projected<I, P>>())> | 
| range_safe_iterator_t< Rng > | operator() (Rng &&rng, F fun, P proj=P{}) const | 
|  |