struct A {}; struct B : public A { static void foo (); }; template struct C { C() : f(B::foo) {} void (*f)(); }; C c;