// Build don't link: 

struct B { int foo (); };
int B::foo() { return 37; }

template <class A> struct X {
  void f();
};

template <class A> void X<A>::f ()
{}

X<int> x;

void xyzzy () {
  x.f ();
}
