1// { dg-do assemble } 2 3class OBJECT {int a;}; 4class STDFILE {int b;}; 5 6template <class T> class VECTOR { 7 T *v; 8 int sz; 9public: 10 T& elem(int i) { return v[i]; } 11 T& operator[] (int i); 12}; 13 14template <class T> 15class PVECTOR : VECTOR<void *> { 16public: 17 T*& elem(int i) 18 {return (T*&) VECTOR<void *>::elem(i); } 19 T*& operator[] (int i) 20 {return (T*&) VECTOR<void *>::operator[](i);} 21}; 22 23PVECTOR<OBJECT *> *foo; 24 25PVECTOR<STDFILE *> *goo; 26