1#ifndef GfxTL__INDEXEDITERATOR_HEADER__
2#define GfxTL__INDEXEDITERATOR_HEADER__
7 template <
class IndexIteratorT,
class IteratorT>
11 typedef typename std::iterator_traits<IteratorT>::value_type
value_type;
12 typedef typename std::iterator_traits<IteratorT>::pointer
pointer;
13 typedef typename std::iterator_traits<IteratorT>::reference
reference;
15 typedef typename std::iterator_traits<IndexIteratorT>::difference_type
difference_type;
17 typedef typename std::iterator_traits<IndexIteratorT>::value_type
IndexType;
31 template <
class IdxItT,
class ItT>
40 return &m_it[*m_idxIt];
46 return m_it[*m_idxIt];
82 return m_idxIt == i.m_idxIt && m_it == i.m_it;
94 return m_idxIt - i.m_idxIt;
112 return m_it[m_idxIt[d]];
121 const IndexIteratorT&
133 template <
class IdxItT,
class ItT>
145 return m_idxIt < i.m_idxIt;
151 return m_idxIt > i.m_idxIt;
157 return m_idxIt <= i.m_idxIt;
163 return m_idxIt >= i.m_idxIt;
167 IndexIteratorT m_idxIt;
171 template <
class IndexIteratorT,
class IteratorT>
172 IndexedIterator<IndexIteratorT, IteratorT>
std::iterator_traits< IndexIteratorT >::iterator_category iterator_category
std::iterator_traits< IteratorT >::pointer pointer
ThisType & operator=(const IndexedIterator< IdxItT, ItT > &it)
bool operator!=(const ThisType &i) const
std::iterator_traits< IndexIteratorT >::value_type IndexType
bool operator>=(const ThisType &i) const
IndexedIterator(const IndexedIterator< IdxItT, ItT > &it)
std::iterator_traits< IndexIteratorT >::difference_type difference_type
std::iterator_traits< IteratorT >::value_type value_type
ThisType operator-(difference_type d) const
IndexedIterator(IndexIteratorT idxIt, IteratorT it)
IndexedIterator< IndexIteratorT, IteratorT > ThisType
const typename DataT::iterator & Iterator() const
IndexedIterator(const ThisType &it)
bool operator<=(const ThisType &i) const
reference operator[](difference_type d)
std::iterator_traits< IteratorT >::reference reference
bool operator<(const ThisType &i) const
const typename IndicesT::iterator & IndexIterator() const
ThisType operator+(difference_type d) const
bool operator==(const ThisType &i) const
difference_type operator-(const ThisType &i) const
bool operator>(const ThisType &i) const
IndexedIterator< IndexIteratorT, IteratorT > IndexIterate(IndexIteratorT idxIt, IteratorT it)