Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
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...
 
value_type operator* () const
 

Public Attributes

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

Private 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>
template<std::size_t... I>
value_type vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::dereference_ ( seq< I...>  ) const
inlineprivate
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
void vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::done_ ( )
inlineprivate
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
inlineprivate

Definition at line 127 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
inlineprivate
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
bool vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::next_ ( )
inlineprivate

Move to the next position.

Return the index of the lastest iterator that could move, -1 if we reached the end.

Definition at line 105 of file zip.hh.

Referenced by vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::operator++().

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...>  )
inlineprivate
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
value_type vcsn::zip_sequences< Sequences >::zip_iterator< ValueType, IteratorsType >::operator* ( ) const
inline

Definition at line 89 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 95 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: