1struct foo { 2 typedef int (*fun)(int); 3 4 static int f(int); // overload between static & non-static 5 int f(); 6 7 static int g(int); // non-overloaded static 8}; 9 10template<foo::fun> 11struct f_obj { 12 // something .. 13}; 14 15int foo::f() { 16 f_obj<f> f1; 17 f_obj<g> f2; 18 19 return 0; 20} 21