// { dg-do assemble } // Origin: Loring Holden template class REFptr { public: virtual ~REFptr(); REFptr &operator = (const REFptr& p); }; class STR { }; class str_ptr : public REFptr { }; template class ARRAY { protected: T *_array; int _num; int _max; public: virtual void realloc(int new_max) { _max = new_max; T *tmp = new T [_max]; if (tmp == 0) return; for (int i=0; i<_num; i++) { tmp[i] = _array[i]; } delete [] _array; _array = tmp; } }; int main() { ARRAY tags; }