template<class> struct class_of; template<class T, class C> struct class_of<T C::*> { using type = C; }; template <typename T> void GeorgeFunc(T fp) { typename class_of<T>::type obj; (obj.*fp)(); }