// Build don't link: struct A { void f() {} template void f() {} }; template struct B { void f() {} template void f() {} }; template struct B; struct C { template void f() {} template void f() {} // ERROR - redeclaration }; template struct D { void f(T); void f(U); }; template struct D; template struct D2 { void f(T); void f(U); // ERROR - redeclaration }; template struct D2; struct E { void f(); void f(); // ERROR - redeclaration };