rah
Classes | Public Types | Public Member Functions | Public Attributes | List of all members
rah::view::join_iterator< R > Struct Template Reference

#include <rah - Copie.hpp>

Inheritance diagram for rah::view::join_iterator< R >:
rah::iterator_facade< join_iterator< R >, range_ref_type_t< range_ref_type_t< R > >, std ::forward_iterator_tag > rah::iterator_facade< join_iterator< R >, range_ref_type_t< range_ref_type_t< R > >, std ::forward_iterator_tag >

Classes

struct  SubRange
 

Public Types

using Iterator1 = range_begin_type_t< R >
 
using Iterator2 = range_begin_type_t< decltype(*fake< Iterator1 >())>
 
using Iterator1 = range_begin_type_t< R >
 
using Iterator2 = range_begin_type_t< decltype(*fake< Iterator1 >())>
 

Public Member Functions

template<typename U >
 join_iterator (U &&range, Iterator1 rangeIter, Iterator2 subRangeIter, Iterator2 subRangeEnd)
 
template<typename U >
 join_iterator (U &&range, Iterator1 rangeIter)
 
void next_valid ()
 
void increment ()
 
auto dereference () const -> decltype(*subRange_->subRangeIter)
 
bool equal (join_iterator other) const
 
template<typename U >
 join_iterator (U &&range, Iterator1 rangeIter, Iterator2 subRangeIter, Iterator2 subRangeEnd)
 
template<typename U >
 join_iterator (U &&range, Iterator1 rangeIter)
 
void next_valid ()
 
void increment ()
 
auto dereference () const -> decltype(*subRange_->subRangeIter)
 
bool equal (join_iterator other) const
 

Public Attributes

range_
 
Iterator1 rangeIter_
 
details::optional< SubRangesubRange_
 
rah ::details::optional< SubRangesubRange_
 

Member Typedef Documentation

◆ Iterator1 [1/2]

template<typename R >
using rah::view::join_iterator< R >::Iterator1 = range_begin_type_t<R>

◆ Iterator1 [2/2]

template<typename R >
using rah::view::join_iterator< R >::Iterator1 = range_begin_type_t<R>

◆ Iterator2 [1/2]

template<typename R >
using rah::view::join_iterator< R >::Iterator2 = range_begin_type_t<decltype(*fake<Iterator1>())>

◆ Iterator2 [2/2]

template<typename R >
using rah::view::join_iterator< R >::Iterator2 = range_begin_type_t<decltype(*fake<Iterator1>())>

Constructor & Destructor Documentation

◆ join_iterator() [1/4]

template<typename R >
template<typename U >
rah::view::join_iterator< R >::join_iterator ( U &&  range,
Iterator1  rangeIter,
Iterator2  subRangeIter,
Iterator2  subRangeEnd 
)
inline

◆ join_iterator() [2/4]

template<typename R >
template<typename U >
rah::view::join_iterator< R >::join_iterator ( U &&  range,
Iterator1  rangeIter 
)
inline

◆ join_iterator() [3/4]

template<typename R >
template<typename U >
rah::view::join_iterator< R >::join_iterator ( U &&  range,
Iterator1  rangeIter,
Iterator2  subRangeIter,
Iterator2  subRangeEnd 
)
inline

◆ join_iterator() [4/4]

template<typename R >
template<typename U >
rah::view::join_iterator< R >::join_iterator ( U &&  range,
Iterator1  rangeIter 
)
inline

Member Function Documentation

◆ dereference() [1/2]

template<typename R >
auto rah::view::join_iterator< R >::dereference ( ) const -> decltype(*subRange_->subRangeIter)
inline

◆ dereference() [2/2]

template<typename R >
auto rah::view::join_iterator< R >::dereference ( ) const -> decltype(*subRange_->subRangeIter)
inline

◆ equal() [1/2]

template<typename R >
bool rah::view::join_iterator< R >::equal ( join_iterator< R >  other) const
inline

◆ equal() [2/2]

template<typename R >
bool rah::view::join_iterator< R >::equal ( join_iterator< R >  other) const
inline

◆ increment() [1/2]

template<typename R >
void rah::view::join_iterator< R >::increment ( )
inline

◆ increment() [2/2]

template<typename R >
void rah::view::join_iterator< R >::increment ( )
inline

◆ next_valid() [1/2]

template<typename R >
void rah::view::join_iterator< R >::next_valid ( )
inline

◆ next_valid() [2/2]

template<typename R >
void rah::view::join_iterator< R >::next_valid ( )
inline

Member Data Documentation

◆ range_

template<typename R >
R rah::view::join_iterator< R >::range_

◆ rangeIter_

template<typename R >
Iterator1 rah::view::join_iterator< R >::rangeIter_

◆ subRange_ [1/2]

template<typename R >
details::optional<SubRange> rah::view::join_iterator< R >::subRange_

◆ subRange_ [2/2]

template<typename R >
rah ::details::optional<SubRange> rah::view::join_iterator< R >::subRange_

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