...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 / transform_view |
template< typename Sequence , typename F > struct transform_view { // unspecified // ... };
A view the full range of Sequence's transformed elements.
#include <boost/mpl/transform_view.hpp>
Parameter | Requirement | Description |
---|---|---|
Sequence | Forward Sequence | A sequence to wrap. |
F | Unary Lambda Expression | A transformation. |
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<s,f> transform_view<s,f>::type |
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 );