Vcsn  2.3
Be Rational
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 &begins, const iterators_type &ends)
 
 cross_iterator (const iterators_type &is, const iterators_type &ends)
 
template<typename OtherValue , typename OtherIterators >
 cross_iterator (cross_iterator< OtherValue, OtherIterators > const &that)
 
bool empty () const
 Whether some of the range is empty. More...
 
void increment ()
 Advance to next position. More...
 
bool equal (const cross_iterator &that) const
 
value_type dereference () 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

template<std::size_t... I>
bool empty_ (seq< I... >) const
 
void done_ ()
 We have reached the end, move all the cursors to this end. More...
 
int increment_ ()
 Move to the next position. More...
 
template<std::size_t... I>
int increment_ (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 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 58 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 67 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 begins,
const iterators_type ends 
)
inline

Definition at line 69 of file cross.hh.

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 80 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>
value_type vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::dereference ( ) const
inline

Definition at line 114 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>
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>
bool vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::empty ( ) const
inline

Whether some of the range is empty.

Definition at line 97 of file cross.hh.

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

Here is the call graph for this function:

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
template<std::size_t... I>
bool vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::empty_ ( seq< I... >  ) const
inlineprivate
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
bool vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::equal ( const cross_iterator< ValueType, IteratorsType > &  that) const
inline

Definition at line 109 of file cross.hh.

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

Here is the call graph for this function:

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
template<std::size_t... I>
bool vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::equal_ ( const cross_iterator< ValueType, IteratorsType > &  that,
seq< I... >   
) const
inlineprivate
template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
void vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::increment ( )
inline

Advance to next position.

Definition at line 103 of file cross.hh.

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

Here is the call graph for this function:

template<typename... Sequences>
template<typename ValueType, typename IteratorsType>
int vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::increment_ ( )
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 139 of file cross.hh.

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

Referenced by vcsn::cross_sequences< Sequences >::cross_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>
int vcsn::cross_sequences< Sequences >::cross_iterator< ValueType, IteratorsType >::increment_ ( seq< I... >  )
inlineprivate
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 167 of file cross.hh.

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

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 120 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: