...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
zip_view presents a view which iterates over a collection of Sequence(s) in parallel. A zip_view is constructed from a Sequence of references to the component _sequence_s.
#include <boost/fusion/view/zip_view.hpp> #include <boost/fusion/include/zip_view.hpp>
template <typename Sequences> struct zip_view;
Parameter |
Description |
Default |
---|---|---|
Sequences |
A Forward Sequence of references to other Fusion _sequence_s |
|
Notation
A joint_view type
An instance of Sequences
Instances of ZV
Semantics of an expression is defined only where it differs from, or is not defined in Forward Sequence.
Expression |
Semantics |
---|---|
ZV(s) |
Creates a zip_view given a sequence of references to the component _sequence_s. |
ZV(zv1) |
Copy constructs a zip_view from another zip_view, zv. |
zv1 = zv2 |
Assigns to a zip_view, zv, from another zip_view, zv2. |
typedef vector<int,int> vec1; typedef vector<char,char> vec2; vec1 v1(1,2); vec2 v2('a','b'); typedef vector<vec1&, vec2&> sequences; std::cout << zip_view<sequences>(sequences(v1, v2)) << std::endl; // ((1 a) (2 b))