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

The MPL Reference Manual: transform_view
Front Page / Sequences / Views / transform_view

transform_view

Synopsis

template<
      typename Sequence
    , typename F
    >
struct transform_view
{
    // unspecified
    // ...
};

Description

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

Parameters

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

Example

Find the largest type in a sequence.

typedef vector types;
typedef max_element<
      transform_view< types, size_of<_> >
    >::type iter;

BOOST_MPL_ASSERT_RELATION( deref::type::value, ==, 50 );