typedef void (*ft)(void *); int f(ft fp); class C {}; template struct S { static void m(void *t) { static_cast(t)->~T(); } }; void g() { int i = f(S::m); }