...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Front Page / Sequences / Views / filter_view |
template< 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>
Parameter | Requirement | Description |
---|---|---|
Sequence | Forward Sequence | A sequence to wrap. |
Pred | Unary Lambda Expression | A filtering predicate. |
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 |
---|---|
filter_view<s,pred> filter_view<s,pred>::type |
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 > ));