// Build don't link:

template <class T>
void f(T t);

template void f<int>(int);
template void f<>(long);

template <class T>
struct S
{
  void bar(int) {}
  
  template <class U>
  void baz(U u) {}
};


template S<char>;
template void S<int>::bar(int);
template void S<double>::baz<short>(short);
template void S<long>::baz<>(char);
