// Build don't link: | |
template <class T> | |
struct S1; // ERROR - previous declaration | |
template <class T, class U> | |
struct S1 {}; // ERROR - used 1 template parameter | |
template <class T = int> // ERROR - original def of default | |
struct S2; | |
template <class T = int> | |
struct S2; // ERROR - redefinition of default | |
template <class T> // ERROR - template parameter | |
struct S3; | |
template <int I> | |
struct S3; // ERROR - redeclared here | |
template <template <class T> class C> | |
struct S3; // ERROR - redeclared here |