1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
// Build don't link: template <class T> struct S; template <class T> class C { friend void S<T>::f(); int i; }; template <class T> struct S { void f() { C<T> c; c.i = 3; } }; template void S<int>::f();