12345678910111213141516171819202122232425262728293031 |
- #pragma once
- #include "Iterator.Base.tlh"
- //-----------------------------------------------------------------------------
- // Indirect_Iterator
- //-----------------------------------------------------------------------------
- namespace Iterator
- {
- template <typename ForIterator, typename deref_type>
- class Indirect_Iterator : public ForIterator
- {
- typedef ForIterator inherited;
- public:
- using value_type = typename deref_type;
- using data_type = typename deref_type;
- public:
- Indirect_Iterator (inherited Iter) : inherited (Iter)
- {
- }
- public:
- inline data_type Current () { return *inherited::Current (); }
- inline data_type operator () () { return Current (); }
- inline data_type operator * () { return Current (); }
- };
- };
|