// Build don't link: template struct A { typedef T T1; }; template struct B { typedef T T2; }; template struct C { }; template C foo (E) { return C(); } void test() { foo(B >()); }