// Build don't link: template struct S {}; template struct S {}; // ERROR - default argument template struct A {}; template struct A {}; // ERROR - argument involves parameter template struct C {}; template struct C; // ERROR - type depends on parameter int i; template struct C; // ERROR - type depends on parameter template< int X, int (*array_ptr)[X] > class B {}; int array[5]; template< int X > class B { }; // ERROR - type depends on parameter