Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::find_if_fn Struct Reference

Public Member Functions

template<typename I , typename S , typename F , typename P = identity>
auto operator() (I begin, S end, F pred, P proj=P{}) const -> I requires input_iterator< I > &&sentinel_for< S, I > &&indirect_unary_predicate< F, projected< I, P >>
 template function find_fn::operator() More...
 
template<typename Rng , typename F , typename P = identity>
auto operator() (Rng &&rng, F pred, P proj=P{}) const -> safe_iterator_t< Rng > requires input_range< Rng > &&indirect_unary_predicate< F, projected< iterator_t< Rng >, P >>
 This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
 

Member Function Documentation

◆ operator()()

template<typename I , typename S , typename F , typename P = identity>
auto ranges::find_if_fn::operator() ( begin,
end,
pred,
proj = P{} 
) const -> I requires input_iterator<I> && sentinel_for<S, I> && indirect_unary_predicate<F, projected<I, P>>

template function find_fn::operator()

range-based version of the find std algorithm

Precondition
Rng is a model of the Range concept
I is a model of the input_iterator concept
S is a model of the sentinel_for<I> concept
P is a model of the invocable<V> concept, where V is the value type of I.
F models predicate<X>, where X is the result type of invocable<P, V>