Boost C++ Libraries

...one of the most highly regarded and expertly designed C++ library projects in the world. Herb Sutter and Andrei Alexandrescu, C++ Coding Standards

PrevUpHomeNext
find_if
Description

Finds the first element within a sequence with a type for which a given MPL Lambda Expression evaluates to boost::mpl::true_.

Synopsis
template<
    typename F,
    typename Sequence
    >
typename result_of::find_if<Sequence const, F>::type find_if(Sequence const& seq);

template<
    typename F,
    typename Sequence
    >
typename result_of::find_if<Sequence, F>::type find_if(Sequence& seq);

Table 1.56. Parameters

Parameter

Requirement

Description

seq

A model of Forward Sequence

The sequence to search

F

A unary MPL Lambda Expression

The search predicate


Expression Semantics
find_if<F>(seq)

Return type: An iterator of the same iterator category as the iterators of seq.

Semantics: Returns the first element of seq for which MPL Lambda Expression F evaluates to boost::mpl::true_, or end(seq) if there is no such element.

Complexity

Linear. At most result_of::size<Sequence>::value comparisons.

Header
#include <boost/fusion/algorithm/query/find_if.hpp>
#include <boost/fusion/include/find_if.hpp>
Example
const vector<double,int> vec(1.0,2);
assert(*find_if<is_integral<mpl::_> >(vec) == 2);
assert(find_if<is_class<mpl::_> >(vec) == end(vec));

PrevUpHomeNext