<<<<<<< .working ======= <<<<<<< .working >>>>>>> .merge-right.r57125 ======= >>>>>>> .merge-right.r58299
Boost C++ Libraries Home Libraries People FAQ More

PrevUpHomeNext
<<<<<<< .working

Sequence Facade

Description

=======
Description
>>>>>>> .merge-right.r57125

The sequence_facade template provides an intrusive mechanism for producing a conforming Fusion iterator.

<<<<<<< .working

Synopsis

=======
Synopsis
>>>>>>> .merge-right.r57125
template<typename Derived, typename TravesalTag, typename IsView = mpl::false_>
struct sequence_facade;
<<<<<<< .working

Usage

=======
Usage
>>>>>>> .merge-right.r57125

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 the implement the key expressions required by their sequence type.

<<<<<<< .working <<<<<<< .working <<<<<<< .working <<<<<<< .working <<<<<<< .working <<<<<<< .working

Table 1.91. Parameters

=======

Table 1.91. Parameters

=======

Table 1.95. Parameters

=======

Table 1.95. Parameters

=======

Table 1.95. Parameters

=======

Table 1.95. Parameters

=======

Table 1.95. Parameters

>>>>>>> .merge-right.r58559 >>>>>>> .merge-right.r58549 >>>>>>> .merge-right.r58299 >>>>>>> .merge-right.r57337 >>>>>>> .merge-right.r57242
>>>>>>> .merge-right.r57125

Name

Description

sequence, Seq

A type derived from sequence_facade

N

An MPL Integral Constant

<<<<<<< .working

Table 1.92. Key Expressions

=======

Table 1.96. Key Expressions

>>>>>>> .merge-right.r57125

Expression

Result

sequence::template begin<Seq>::type

The type of an iterator to the beginning of a sequence of type Seq

sequence::template begin<Seq>::call(seq)

An iterator to the beginning of sequence seq

sequence::template end<Seq>::type

The type of an iterator to the end of a sequence of type Seq

sequence::template end<Seq>::call(seq)

An iterator to the end of sequence seq

sequence::template size<Seq>::type

The size of a sequence of type Seq as an MPL Integral Constant

sequence::template size<Seq>::call(seq)

The size of sequence seq

sequence::template at<Seq, N>::type

The type of element N in a sequence of type Seq

sequence::template at<Seq, N>::call(seq)

Element N in sequence seq

sequence::template value_at<Sequence, N>::type

The type of the Nth element in a sequence of type Seq

<<<<<<< .working

Include

=======
Include
>>>>>>> .merge-right.r57125
#include <boost/fusion/sequence/sequence_facade.hpp>
#include <boost/fusion/include/sequence_facade.hpp>
<<<<<<< .working

Example

=======
Example
>>>>>>> .merge-right.r57125

A full working example using sequence_facade is provided in triple.cpp in the extension examples.


PrevUpHomeNext