I\'ve managed to write a template class to work like a callback, learned from the accepted answer of this question How to define a general member function pointer.
I wis
Madness lies, this way: Don't bind callbacks to specific classes. Instead, use a std::function object and create suitable function objects: when you need to operate on different classes, you also need to operate on objects of different types. Using a std::function<...> should do the trick, e.g.:
std::map> operations;
operations["talk"] = std::bind(&ChildA::Talk, ChildA());
operations["walk"] = std::bind(&ChildB::Walk, ChildB());
operations["talk"]();