blob: a3e3effdf960d4f9e7519772a4571e82b5ae5475 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
// { dg-do assemble }
// Origin: Loring Holden <lsh@cs.brown.edu>
template <class T>
class REFptr {
public:
virtual ~REFptr();
REFptr<T> &operator = (const REFptr<T>& p);
};
class STR { };
class str_ptr : public REFptr<STR> { };
template <class T>
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<str_ptr> tags;
}
|