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

Front Page / Sequences / Views / transform_view



      typename Sequence
    , typename F
struct transform_view
    // unspecified
    // ...


A view the full range of Sequence's transformed elements.


#include <boost/mpl/transform_view.hpp>

Model of


Parameter Requirement Description
Sequence Forward Sequence A sequence to wrap.
F Unary Lambda Expression A transformation.

Expression semantics

The semantics of an expression are defined only where they differ from, or are not defined in Forward Sequence.

In the following table, v is an instance of transform_view, s is an arbitrary Forward Sequence, and f is an unary Lambda Expression.

Expression Semantics
A lazy Forward Sequence such that for each i in the range [begin<v>::type, end<v>::type) and each j in for in the range [begin<s>::type, end<s>::type) deref<i>::type is identical to apply< f, deref<j>::type >::type.
size<v>::type The size of v; size<v>::value == size<s>::value; linear complexity; see Forward Sequence.


Find the largest type in a sequence.

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

BOOST_MPL_ASSERT_RELATION( deref<iter>::type::value, ==, 50 );

See also

Sequences, Views, filter_view, joint_view, zip_view, iterator_range