C++ map of “events” and member function pointers

后端 未结 2 697
礼貌的吻别
礼貌的吻别 2021-01-26 07:03

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

2条回答
  •  忘了有多久
    2021-01-26 07:22

    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"]();
    

提交回复
热议问题