template< class E >  
\fbox{iter}
class iter { public: iter(iter* x) : it(x) {} virtual E* operator()() { return (*it)(); }
\c{// indirect}
private: iter<E>* it; };

slide: The definition of iterators