4 struct S1; // { dg-error "" } previous declaration
6 template <class T, class U>
7 struct S1 {}; // { dg-error "" } used 1 template parameter
9 template <class T = int> // { dg-error "" } original def of default
12 template <class T = int>
13 struct S2; // { dg-error "" } redefinition of default
15 template <class T> // { dg-error "" } template parameter
19 struct S3; // { dg-error "" } redeclared here
21 template <template <class T> class C>
22 struct S3; // { dg-error "" } redeclared here