// PR c++/51045 | |
// { dg-options "-Wzero-as-null-pointer-constant" } | |
template <typename T> | |
struct A | |
{ | |
A() { t = new T; } | |
~A() | |
{ | |
delete t; | |
} | |
T* t; | |
}; | |
template <typename T> | |
struct B | |
{ | |
B() { t = new T[1]; } | |
~B() | |
{ | |
delete [] t; | |
} | |
T* t; | |
}; | |
template <typename Type> | |
class Variant | |
{ | |
Type t; | |
}; | |
class Op; | |
typedef Variant<A<Op> > vara; | |
typedef Variant<B<Op> > varb; | |
class Op | |
{ | |
vara x; | |
varb y; | |
}; | |
int main() | |
{ | |
vara a; | |
varb b; | |
} |