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

This is the documentation for an old version of Boost. Click here to view this page for the latest version.
Front Page / Sequences / Views / filter_view



      typename Sequence
    , typename Pred
struct filter_view
    // unspecified
    // ...


A view into a subset of Sequence's elements satisfying the predicate Pred.


#include <boost/mpl/filter_view.hpp>

Model of


Parameter Requirement Description
Sequence Forward Sequence A sequence to wrap.
Pred Unary Lambda Expression A filtering predicate.

Expression semantics

Semantics of an expression is defined only where it differs from, or is not defined in Forward Sequence.

In the following table, v is an instance of filter_view, s is an arbitrary Forward Sequence, pred is an unary Lambda Expression.

Expression Semantics
A lazy Forward Sequence sequence of all the elements in the range [begin<s>::type, end<s>::type) that satisfy the predicate pred.
size<v>::type The size of v; size<v>::value == count_if<s,pred>::value; linear complexity; see Forward Sequence.


Find the largest floating type in a sequence.

typedef vector<int,float,long,float,char[50],long double,char> types;
typedef max_element<
      transform_view< filter_view< types,boost::is_float<_> >, size_of<_> >
    >::type iter;

BOOST_MPL_ASSERT(( is_same< deref<iter::base>::type, long double > ));

See also

Sequences, Views, transform_view, joint_view, zip_view, iterator_range