You want void (T::*pMemberFunction)(void)
The other issue is probably just a typo in your example usage, but calling the member function uses .*
as a single operator; you can't have a (
in-between them, or even whitespace. I'm guessing that's a typo because it's almost the correct way to deal with the weird operator precedence that pointer-to-member operators have:
(t.*pMemberFunction)();