...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 / zip_view |
Provides a "zipped" view onto several sequences; that is, represents several sequences as a single sequence of elements each of which, in turn, is a sequence of the corresponding Sequences' elements.
#include <boost/mpl/zip_view.hpp>
Parameter | Requirement | Description |
---|---|---|
Sequences | A Forward Sequence of Forward Sequences | Sequences to be "zipped". |
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 zip_view, seq a Forward Sequence of n Forward Sequences.
Expression | Semantics |
---|---|
zip_view<seq> zip_view<seq>::type |
A lazy Forward Sequence v such that for each i in [begin<v>::type, end<v>::type) and for each j in [begin<seq>::type, end<seq>::type) deref<i>::type is identical to transform< deref<j>::type, deref<_1> >::type. |
size<v>::type | The size of v; size<v>::value is equal to deref< min_element< transform_view< seq, size<_1> > >::type >::type::value; linear complexity; see Forward Sequence. |
Element-wise sum of three vectors.
typedef vector_c<int,1,2,3,4,5> v1; typedef vector_c<int,5,4,3,2,1> v2; typedef vector_c<int,1,1,1,1,1> v3; typedef transform_view< zip_view< vector<v1,v2,v3> > , unpack_args< plus<_1,_2,_3> > > sum; BOOST_MPL_ASSERT(( equal< sum, vector_c<int,7,7,7,7,7> > ));