首页 > 代码库 > C++ TR1 Function Bind
C++ TR1 Function Bind
在C++ 11出现以前,C++的事件一般是通过回调形试来实现,如 void (*func)(int,int,int),其实际上是一种函数指针,在C中调用时是直接写函数名在参数列表中,而在C++中,大部份的回调需要定义成 static。也就是静态函数。通过::作用域符,方式调用。
当然在C++TR11出现前,更早的function 与Bind 在开源库中boost 中就有,而C++11 tr1也就是借鉴了或者直接使用了boost库中的相关模板。
现在就来说说C++ tr1 中的Function 模板 比如 typedef std::tr1::function<long(const char*,unsigned int)>MSGEvent; 这个function 实际上就是以前的回调函数的定义,只是用了function模板后,你就可以像对象一样操作,也为后面的bind提供方便。
C++ tr1 bind 和boost的bind一样,形式为bind(Function fn, T1 t1, T2 t2, …, TN tN); 前名是函数名,后面是参数。bind的好处在与你的联接可以是全局函数,或者静态函数,或者是类的成员函数,而不像以前的回调,只能用静态函数。
网上很多例子,可以看看 http://www.cnblogs.com/satng/archive/2011/04/29/2138804.html
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。