#include #include using namespace std; class Base; typedef void (Base::*function)(); class Base { public: function f; Base() {
f doesn't appear to be in scope in Handler::CallFunction. I'm guessing you meant to call the b->f using b as this, as it (b->*(b->f))(). When I make this change, your code compiles and prints out something sane.
f
Handler::CallFunction
b->f
b
this
(b->*(b->f))()