Vcsn  2.0
Be Rational
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType > Struct Template Reference

Composite iterator. More...

#include <cross.hh>

Inheritance diagram for vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >:
Collaboration diagram for vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >:

Public Types

using iterators_type = IteratorsType
 Underlying iterators. More...
 

Public Member Functions

 cross_iterator (const iterators_type &is, const iterators_type &ends)
 
template<typename OtherValue , typename OtherIterators >
 cross_iterator (cross_iterator< OtherValue, OtherIterators > const &that)
 
cross_iteratoroperator++ ()
 Advance to next position. More...
 
bool operator!= (const cross_iterator &that) const
 
value_type operator* () const
 

Public Attributes

iterators_type is_
 The current position. More...
 
iterators_type begins_
 The begins. 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...
 
int next_ ()
 Move to the next position. More...
 
template<std::size_t... I>
int next_ (seq< I...>)
 
void reset_up_to_ (int n)
 Move beginning of ranges to their end, and align. More...
 
template<std::size_t... I>
void reset_up_to_ (size_t n, seq< I...>)
 
template<std::size_t... I>
bool not_equal_ (const cross_iterator &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::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >

Composite iterator.

Definition at line 55 of file cross.hh.

Member Typedef Documentation

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
using vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::iterators_type = IteratorsType

Underlying iterators.

Definition at line 63 of file cross.hh.

Constructor & Destructor Documentation

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

Definition at line 65 of file cross.hh.

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
template<typename OtherValue , typename OtherIterators >
vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::cross_iterator ( cross_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::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::dereference_ ( seq< I...>  ) const
inlineprivate
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
void vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::done_ ( )
inlineprivate
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
int vcsn::cross_sequences< Sequences >::cross_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 114 of file cross.hh.

References vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::reset_up_to_().

Referenced by vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::operator++().

Here is the call graph for this function:

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
template<std::size_t... I>
int vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::next_ ( seq< I...>  )
inlineprivate
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
template<std::size_t... I>
bool vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::not_equal_ ( const cross_iterator< ValueType, IteratorsType > &  that,
seq< I...>   
) const
inlineprivate
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
bool vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::operator!= ( const cross_iterator< ValueType, IteratorsType > &  that) const
inline

Definition at line 93 of file cross.hh.

References vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::not_equal_().

Here is the call graph for this function:

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
value_type vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::operator* ( ) const
inline

Definition at line 98 of file cross.hh.

References vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::dereference_().

Here is the call graph for this function:

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

Advance to next position.

Definition at line 86 of file cross.hh.

References vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::done_(), and vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::next_().

Here is the call graph for this function:

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
void vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::reset_up_to_ ( int  n)
inlineprivate

Move beginning of ranges to their end, and align.

Definition at line 142 of file cross.hh.

Referenced by vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::next_().

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
template<std::size_t... I>
void vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::reset_up_to_ ( size_t  n,
seq< I...>   
)
inlineprivate

Friends And Related Function Documentation

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

Definition at line 104 of file cross.hh.

Member Data Documentation

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
iterators_type vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::begins_
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
iterators_type vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::ends_

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