// Build don't link: template struct S1 {}; template void f(T); // ERROR - original declaration. template struct S2 { template void f >(T) {} // ERROR - bad specialization. }; template struct S3 { friend class S2; };