...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
The sequence_facade
template provides an intrusive mechanism for producing a conforming Fusion
sequence.
template<typename Derived, typename TravesalTag, typename IsView = mpl::false_> struct sequence_facade;
The user of sequence_facade
derives his sequence
type from a specialization of sequence_facade
and passes the derived
sequence type as the first template parameter. The second template parameter
should be the traversal category of the sequence being implemented. The 3rd
parameter should be set to mpl::true_
if the sequence is a view.
The user must implement the key expressions required by their sequence type.
Table 1.107. Key Expressions
Expression |
Result |
---|---|
|
The type of an iterator to the beginning of a sequence of type
|
|
An iterator to the beginning of sequence |
|
The type of an iterator to the end of a sequence of type |
|
An iterator to the end of sequence |
|
The size of a sequence of type |
|
The size of sequence |
|
Returns |
|
Returns a type convertible to |
|
The type of element |
|
Element |
|
The type of the |
#include <boost/fusion/sequence/sequence_facade.hpp> #include <boost/fusion/include/sequence_facade.hpp>
A full working example using sequence_facade
is provided in triple.cpp
in the extension examples.