// Build don't link: extern "C" int printf(const char *, ...); template struct A { typedef typename T::X B; // ERROR - not a class A(double); }; template void xxx(typename A::B); template struct B { friend void xxx(T); // ERROR - does not match any template }; template struct B; // ERROR -