.. Sequences/Views//filter_view filter_view =========== Synopsis -------- .. parsed-literal:: template< typename Sequence , typename Pred > struct filter_view { // |unspecified| // |...| }; Description ----------- A view into a subset of ``Sequence``\ 's elements satisfying the predicate ``Pred``. Header ------ .. parsed-literal:: #include Model of -------- * |Forward Sequence| Parameters ---------- +---------------+-----------------------------------+-----------------------------------------------+ | 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 | +=======================================+===========================================================+ | .. parsed-literal:: | A lazy |Forward Sequence| sequence of all the elements in | | | the range |begin/end| that satisfy the predicate | | filter_view | ``pred``. | | filter_view::type | | +---------------------------------------+-----------------------------------------------------------+ | ``size::type`` | The size of ``v``; | | | ``size::value == count_if::value``; | | | linear complexity; see |Forward Sequence|. | +---------------------------------------+-----------------------------------------------------------+ Example ------- Find the largest floating type in a sequence. .. parsed-literal:: typedef vector types; typedef max_element< transform_view< filter_view< types,boost::is_float<_> >, size_of<_> > >::type iter; BOOST_MPL_ASSERT(( is_same< deref::type, long double > )); See also -------- |Sequences|, |Views|, |transform_view|, |joint_view|, |zip_view|, |iterator_range|