Project
Loading...
Searching...
No Matches
o2::rans::CombinedInputIterator< iterA_T, iterB_T, F > Class Template Reference

#include <iterator.h>

Public Types

using difference_type = std::ptrdiff_t
 
using value_type = std::invoke_result_t< F, iterA_T, iterB_T >
 
using pointer = value_type *
 
using reference = value_type &
 
using iterator_category = internal::getIteratorTag_t< typename std::iterator_traits< iterA_T >::iterator_category, typename std::iterator_traits< iterB_T >::iterator_category >
 

Public Member Functions

 CombinedInputIterator ()=default
 
 CombinedInputIterator (iterA_T iterA, iterB_T iterB, F functor)
 
 CombinedInputIterator (const CombinedInputIterator &iter)=default
 
 CombinedInputIterator (CombinedInputIterator &&iter)=default
 
CombinedInputIteratoroperator= (const CombinedInputIterator &other)
 
CombinedInputIteratoroperator= (CombinedInputIterator &&other)=default
 
 ~CombinedInputIterator ()=default
 
CombinedInputIteratoroperator++ ()
 
CombinedInputIterator operator++ (int)
 
CombinedInputIteratoroperator-- ()
 
CombinedInputIterator operator-- (int)
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
CombinedInputIteratoroperator+= (difference_type i)
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
CombinedInputIterator operator+ (difference_type i) const
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
CombinedInputIteratoroperator-= (difference_type i)
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
CombinedInputIterator operator- (difference_type i) const
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
difference_type operator- (const CombinedInputIterator &other) const
 
bool operator== (const CombinedInputIterator &other) const
 
bool operator!= (const CombinedInputIterator &other) const
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
bool operator< (const CombinedInputIterator &other) const
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
bool operator> (const CombinedInputIterator &other) const
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
bool operator>= (const CombinedInputIterator &other) const
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
bool operator<= (const CombinedInputIterator &other) const
 
auto operator* () const
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
value_type operator[] (difference_type i) const
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
auto operator+= (difference_type i) -> CombinedInputIterator &
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
auto operator+ (difference_type i) const -> CombinedInputIterator
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
auto operator-= (difference_type i) -> CombinedInputIterator &
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
auto operator- (difference_type i) const -> CombinedInputIterator
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
auto operator- (const CombinedInputIterator &other) const -> difference_type
 
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
auto operator[] (difference_type i) const -> value_type
 

Friends

std::ostream & operator<< (std::ostream &o, const CombinedInputIterator &iter)
 
CombinedInputIterator operator+ (CombinedInputIterator::difference_type i, const CombinedInputIterator &iter)
 

Detailed Description

template<class iterA_T, class iterB_T, class F>
class o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >

Definition at line 75 of file iterator.h.

Member Typedef Documentation

◆ difference_type

template<class iterA_T , class iterB_T , class F >
using o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::difference_type = std::ptrdiff_t

Definition at line 78 of file iterator.h.

◆ iterator_category

template<class iterA_T , class iterB_T , class F >
using o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::iterator_category = internal::getIteratorTag_t<typename std::iterator_traits<iterA_T>::iterator_category, typename std::iterator_traits<iterB_T>::iterator_category>

Definition at line 82 of file iterator.h.

◆ pointer

template<class iterA_T , class iterB_T , class F >
using o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::pointer = value_type*

Definition at line 80 of file iterator.h.

◆ reference

template<class iterA_T , class iterB_T , class F >
using o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::reference = value_type&

Definition at line 81 of file iterator.h.

◆ value_type

template<class iterA_T , class iterB_T , class F >
using o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::value_type = std::invoke_result_t<F, iterA_T, iterB_T>

Definition at line 79 of file iterator.h.

Constructor & Destructor Documentation

◆ CombinedInputIterator() [1/4]

template<class iterA_T , class iterB_T , class F >
o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::CombinedInputIterator ( )
default

◆ CombinedInputIterator() [2/4]

template<class iterA_T , class iterB_T , class F >
o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::CombinedInputIterator ( iterA_T  iterA,
iterB_T  iterB,
functor 
)

Definition at line 214 of file iterator.h.

◆ CombinedInputIterator() [3/4]

template<class iterA_T , class iterB_T , class F >
o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::CombinedInputIterator ( const CombinedInputIterator< iterA_T, iterB_T, F > &  iter)
default

◆ CombinedInputIterator() [4/4]

template<class iterA_T , class iterB_T , class F >
o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::CombinedInputIterator ( CombinedInputIterator< iterA_T, iterB_T, F > &&  iter)
default

◆ ~CombinedInputIterator()

template<class iterA_T , class iterB_T , class F >
o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::~CombinedInputIterator ( )
default

Member Function Documentation

◆ operator!=()

template<class iterA_T , class iterB_T , class F >
bool o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator!= ( const CombinedInputIterator< iterA_T, iterB_T, F > &  other) const
inline

Definition at line 306 of file iterator.h.

◆ operator*()

template<class iterA_T , class iterB_T , class F >
auto o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator* ( ) const
inline

Definition at line 340 of file iterator.h.

◆ operator+() [1/2]

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
CombinedInputIterator o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator+ ( difference_type  i) const

◆ operator+() [2/2]

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
auto o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator+ ( difference_type  i) const -> CombinedInputIterator
inline

Definition at line 269 of file iterator.h.

◆ operator++() [1/2]

template<class iterA_T , class iterB_T , class F >
auto o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator++ ( )
inline

Definition at line 227 of file iterator.h.

◆ operator++() [2/2]

template<class iterA_T , class iterB_T , class F >
auto o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator++ ( int  )
inline

Definition at line 235 of file iterator.h.

◆ operator+=() [1/2]

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
CombinedInputIterator & o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator+= ( difference_type  i)

◆ operator+=() [2/2]

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
auto o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator+= ( difference_type  i) -> CombinedInputIterator&
inline

Definition at line 260 of file iterator.h.

◆ operator-() [1/4]

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
difference_type o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator- ( const CombinedInputIterator< iterA_T, iterB_T, F > &  other) const

◆ operator-() [2/4]

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
auto o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator- ( const CombinedInputIterator< iterA_T, iterB_T, F > &  other) const -> difference_type
inline

Definition at line 294 of file iterator.h.

◆ operator-() [3/4]

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
CombinedInputIterator o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator- ( difference_type  i) const

◆ operator-() [4/4]

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
auto o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator- ( difference_type  i) const -> CombinedInputIterator
inline

Definition at line 286 of file iterator.h.

◆ operator--() [1/2]

template<class iterA_T , class iterB_T , class F >
auto o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator-- ( )
inline

Definition at line 243 of file iterator.h.

◆ operator--() [2/2]

template<class iterA_T , class iterB_T , class F >
auto o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator-- ( int  )
inline

Definition at line 251 of file iterator.h.

◆ operator-=() [1/2]

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
CombinedInputIterator & o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator-= ( difference_type  i)

◆ operator-=() [2/2]

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
auto o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator-= ( difference_type  i) -> CombinedInputIterator&
inline

Definition at line 277 of file iterator.h.

◆ operator<()

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
bool o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator< ( const CombinedInputIterator< iterA_T, iterB_T, F > &  other) const
inline

Definition at line 313 of file iterator.h.

◆ operator<=()

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
bool o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator<= ( const CombinedInputIterator< iterA_T, iterB_T, F > &  other) const
inline

Definition at line 334 of file iterator.h.

◆ operator=() [1/2]

template<class iterA_T , class iterB_T , class F >
CombinedInputIterator & o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator= ( CombinedInputIterator< iterA_T, iterB_T, F > &&  other)
default

◆ operator=() [2/2]

template<class iterA_T , class iterB_T , class F >
auto o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator= ( const CombinedInputIterator< iterA_T, iterB_T, F > &  other)

Definition at line 219 of file iterator.h.

◆ operator==()

template<class iterA_T , class iterB_T , class F >
bool o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator== ( const CombinedInputIterator< iterA_T, iterB_T, F > &  other) const
inline

Definition at line 300 of file iterator.h.

◆ operator>()

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
bool o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator> ( const CombinedInputIterator< iterA_T, iterB_T, F > &  other) const
inline

Definition at line 320 of file iterator.h.

◆ operator>=()

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
bool o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator>= ( const CombinedInputIterator< iterA_T, iterB_T, F > &  other) const
inline

Definition at line 327 of file iterator.h.

◆ operator[]() [1/2]

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > = true>
value_type o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator[] ( difference_type  i) const

◆ operator[]() [2/2]

template<class iterA_T , class iterB_T , class F >
template<std::enable_if_t< internal::areBothRandomAccessIterators_v< iterA_T, iterB_T >, bool > >
auto o2::rans::CombinedInputIterator< iterA_T, iterB_T, F >::operator[] ( difference_type  i) const -> value_type
inline

Definition at line 347 of file iterator.h.

Friends And Related Symbol Documentation

◆ operator+

template<class iterA_T , class iterB_T , class F >
CombinedInputIterator operator+ ( CombinedInputIterator< iterA_T, iterB_T, F >::difference_type  i,
const CombinedInputIterator< iterA_T, iterB_T, F > &  iter 
)
friend

Definition at line 147 of file iterator.h.

◆ operator<<

template<class iterA_T , class iterB_T , class F >
std::ostream & operator<< ( std::ostream &  o,
const CombinedInputIterator< iterA_T, iterB_T, F > &  iter 
)
friend

Definition at line 141 of file iterator.h.


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