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

Click here to view the latest version of this page.
PrevUpHomeNext
find_if

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

Description
Synopsis
template<
    typename F,
    typename Sequence
    >
unspecified find_if(Sequence const& seq);

template<
    typename F,
    typename Sequence
    >
unspecified find_if(Sequence& seq);

Table 1.47. 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.

  1. include <boost/fusion/algorithm/query/find_if.hpp>
  2. 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