1 struct 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 10 template<foo::fun> 11 struct f_obj { 12 // something .. 13 }; 14 f()15int foo::f() { 16 f_obj<f> f1; 17 f_obj<g> f2; 18 19 return 0; 20 } 21