Boost logo

Boost :

From: Andy Little (andy_at_[hidden])
Date: 2006-09-14 04:00:10


"David Abrahams" wrote
> Joel de Guzman writes:
>
>> advance_iterator looks general enough.
>
> What *is* an advance_iterator?

FWIW:

 fusion::advance_iterator<
    Sequence, // the sequence to advance over
    Stride, // number of positions in underlying
                                          //sequence to move on 'next'
    StridedPosition, // underlying sequence::position *
                                          // Stride + Offset
    Offset // offset in underlying sequence units
>

The main use is to return a column in a linear sequence representing a matrix.

Also consider :

sequence seq;

advance_iterator<sequence,..> i1(seq);
advance_iterator<sequence,..> i2(seq);

iterator_range<i1_type,i2_type> range(i1,i2);:

advance_iterator<range, ..> j1(range);
advance_iterator<range, ..> j2(range);

iterator_range<j1_type,j2_type> range_on_range (j1,j2);

etc ...

regards
Andy Little


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk