...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
repetitive_view
presents
a view which iterates over a given Sequence
repeatedly. Because a repetitive_view
has infinite length, it can only be used when some external condition determines
the end. Thus, initializing a fixed length sequence with a repetitive_view
is okay, but printing a
repetitive_view
to std::cout
is not.
#include <boost/fusion/view/repetitive_view.hpp> #include <boost/fusion/include/repetitive_view.hpp>
template <typename Sequence> struct repetitive_view;
Parameter |
Description |
Default |
---|---|---|
|
An arbitrary Fusion Forward Sequence |
Notation
RV
A repetitive_view
type
s
An instance of Sequences
rv
, rv1
, rv2
Instances of RV
Expression |
Return Type |
Semantics |
---|---|---|
|
Creates an |
|
|
Copy constructs an |
|
|
Assigns to a |
|
|
||
|
Creates an unreachable iterator (since the sequnce is infinite) |
Expression |
---|
|
|
typedefvector
<int, char, double> vec1; typedefvector
<int, char, double, int, char> vec2; vec1 v1(1, 'c', 2.0); vec2 v2(repetitive_view<vec1>(v1)); std::cout << v2 << std::endl; // 1, 'c', 2.0, 1, 'c'