namespace N { template struct A { friend int f(A); }; } namespace N { int f(int); } namespace N { int f(int); } #include "a.h" namespace N { int f(int); } inline int g() { return f(N::A()); }