| // { dg-do assemble } | |
| class OBJECT {int a;}; | |
| class STDFILE {int b;}; | |
| template <class T> class VECTOR { | |
| T *v; | |
| int sz; | |
| public: | |
| T& elem(int i) { return v[i]; } | |
| T& operator[] (int i); | |
| }; | |
| template <class T> | |
| class PVECTOR : VECTOR<void *> { | |
| public: | |
| T*& elem(int i) | |
| {return (T*&) VECTOR<void *>::elem(i); } | |
| T*& operator[] (int i) | |
| {return (T*&) VECTOR<void *>::operator[](i);} | |
| }; | |
| PVECTOR<OBJECT *> *foo; | |
| PVECTOR<STDFILE *> *goo; |