template struct A { typedef T* iterator; // ERROR - pointer to reference public: A(){} }; void f() { A a; // ERROR - instantiated from here }