// Build don't link: template struct X { virtual void f(int) const; }; template struct Y: public X { virtual void f(int) const; }; template void Y::f(int) const { } template <> void Y::f(int) const;