|
template<typename I , typename S , typename C , typename P = identity> |
auto | operator() (I begin, S end, C pred, P proj=P{}) const -> I requires bidirectional_iterator< I > &&sentinel_for< S, I > &&indirect_unary_predicate< C, projected< I, P >> &&permutable< I > |
|
template<typename Rng , typename C , typename P = identity> |
auto | operator() (Rng &&rng, C pred, P proj=P{}) const -> safe_iterator_t< Rng > requires bidirectional_range< Rng > &&indirect_unary_predicate< C, projected< iterator_t< Rng >, P >> &&permutable< iterator_t< Rng >> |
|