【发布时间】:2013-08-20 23:57:58
【问题描述】:
Present 是一个将函数注册为回调的类。
class Action {
private:
static std::multimap<std::string, std::function<void()>> actions;
public:
static void registerAction(const std::string &key, std::function<void()> action);
}
显然它不能注册成员函数,因为指向成员函数的函数指针对象需要指定类,但每个类都应该能够注册它们的函数。 std::function<void(Class&)>
使用模板系统,我无法从我想的静态类的一个“实例”访问所有操作。这怎么可能实现?
示例如下:
class B {
public:
B() {
Action::registerAction("some_action", &callMe);
}
void callMe(){}
}
【问题讨论】:
标签: c++ c++11 callback function-pointers