如何封装函数绑定?

时间:2019-04-20 05:11:48

标签: c++ c++11

我有:

std::function<void(EventCustom*)> f = std::bind( &MyClass::MyFunc, myObj, _1 );

以上代码在我的代码中始终使用,但是代替MyClass的可能是MyClass2,MyClass3,myObj3,myObj2等,代替了MyClass和myObj

是否可以通过某种方式将以上内容包装到函数中?我遇到的问题是,除非我完全按照上面的方式使用代码,否则bind的输出不会完全创建std :: function,因此编译器会抱怨。

EventCustom *是cocos2d-x库中使用的对象。因此,如果您下载并构建了cocos2d-x项目,则可以使用它。

1 个答案:

答案 0 :(得分:1)

lambda呢?

std::function<void(EventCustom*)> f = [&myObj2](EventCustom* pEvent) {
    myObj2.MyFunc(pEvent);
};