Vcsn  2.2
Be Rational
vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType > Struct Template Reference

Composite iterator. More...

#include <zip.hh>

Inheritance diagram for vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >:
Collaboration diagram for vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >:

Public Types

using iterators_type = IteratorsType
 Underlying iterators. More...
 

Public Member Functions

 zip_iterator (const iterators_type &is, const iterators_type &ends)
 
template<typename OtherValue , typename OtherIterators >
 zip_iterator (zip_iterator< OtherValue, OtherIterators > const &that)
 
zip_iteratoroperator++ ()
 Advance to next position. More...
 
void increment ()
 
void advance (std::size_t n)
 
value_type operator* () const
 
const iterators_typeiterators () const
 
const iterators_typeend () const
 

Public Attributes

iterators_type is_
 The current position. More...
 
iterators_type ends_
 The ends. More...
 

Protected Member Functions

void done_ ()
 We have reached the end, move all the cursors to this end. More...
 
bool next_ ()
 Move to the next position. More...
 
template<std::size_t... I>
bool next_ (seq< I... >)
 
template<typename OtherValue , typename OtherIterators >
bool equal (const zip_iterator< OtherValue, OtherIterators > &that) const
 
template<typename OtherValue , typename OtherIterators , std::size_t... I>
bool equal_ (const zip_iterator< OtherValue, OtherIterators > &that, seq< I... >) const
 
template<std::size_t... I>
value_type dereference_ (seq< I... >) const
 Tuple of values. More...
 

Friends

class boost::iterator_core_access
 

Detailed Description

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
struct vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >

Composite iterator.

Definition at line 55 of file zip.hh.

Member Typedef Documentation

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
using vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::iterators_type = IteratorsType

Underlying iterators.

Definition at line 63 of file zip.hh.

Constructor & Destructor Documentation

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::zip_iterator ( const iterators_type is,
const iterators_type ends 
)
inline

Definition at line 65 of file zip.hh.

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
template<typename OtherValue , typename OtherIterators >
vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::zip_iterator ( zip_iterator< OtherValue, OtherIterators > const &  that)
inline

Member Function Documentation

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
void vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::advance ( std::size_t  n)
inline

Definition at line 94 of file zip.hh.

References vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::increment().

Here is the call graph for this function:

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
template<std::size_t... I>
value_type vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::dereference_ ( seq< I... >  ) const
inlineprotected
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
void vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::done_ ( )
inlineprotected
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
const iterators_type& vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::end ( ) const
inline
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
template<typename OtherValue , typename OtherIterators >
bool vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::equal ( const zip_iterator< OtherValue, OtherIterators > &  that) const
inlineprotected

Definition at line 148 of file zip.hh.

References vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::equal_().

Here is the call graph for this function:

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
template<typename OtherValue , typename OtherIterators , std::size_t... I>
bool vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::equal_ ( const zip_iterator< OtherValue, OtherIterators > &  that,
seq< I... >   
) const
inlineprotected
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
void vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::increment ( )
inline
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
const iterators_type& vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::iterators ( ) const
inline
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
bool vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::next_ ( )
inlineprotected
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
template<std::size_t... I>
bool vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::next_ ( seq< I... >  )
inlineprotected
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
value_type vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::operator* ( ) const
inline

Definition at line 100 of file zip.hh.

References vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::dereference_().

Here is the call graph for this function:

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
zip_iterator& vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::operator++ ( )
inline

Advance to next position.

Definition at line 82 of file zip.hh.

References vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::done_(), and vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::next_().

Here is the call graph for this function:

Friends And Related Function Documentation

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
friend class boost::iterator_core_access
friend

Definition at line 116 of file zip.hh.

Member Data Documentation

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
iterators_type vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::ends_

The documentation for this struct was generated from the following file: