1 // Addr of function from multiple namespaces 2 3 namespace X 4 { 5 void Foo (int); 6 void Foo (short); 7 } 8 9 namespace Y 10 { 11 void Foo (float); 12 void Foo (double); 13 } 14 15 template <typename T> void Foo (T *); 16 17 using namespace X; 18 19 using namespace Y; 20 Baz()21void (*(Baz ())) (float) 22 { 23 return Foo; 24 } 25 Bar()26void (*(Bar ())) (void *) 27 { 28 return Foo; 29 } 30