// { 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; |