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