#pragma once #include "Iterator.Base.tlh" //----------------------------------------------------------------------------- // Indirect_Iterator //----------------------------------------------------------------------------- namespace Iterator { template 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 (); } }; };