当前位置:  软件>C/C++软件

超小型的bind库 bi-bind

    来源:    发布时间:2014-12-27

    本文导语:  boost中有一个bind库, 可以说是一个最为实用的tools了, 但是它与boost结合的有些紧密,而且其中的一些功能并不是很常用,就算将它bcp出独立的库也是一个不小的负担。如果在你的项目中不打算有boost库的痕迹但是又想使用bind...

boost中有一个bind库, 可以说是一个最为实用的tools了, 但是它与boost结合的有些紧密,而且其中的一些功能并不是很常用,就算将它bcp出独立的库也是一个不小的负担。如果在你的项目中不打算有boost库的痕迹但是又想使用bind的强大功能,那就来看看它吧。

一个一个超小型的bind库, 它实现了大部分boost::bind的功能, 只是将名字空间由boost 变换为 bi 。如果使用了一般的使用中通常可以将

boost::bind(my_fun(), _1,_2)(234, "hello world"); 形式替换为 bi::bind(my_fun(), _1, _2)(234, "hello world"),

既可完成编译,如果使用了名字空间,那就只需要将 using namespace boost 替换为 using namespafce bi 即可完成转化。

它对一般函数、成员函数, 虚拟函数, 函数对象都提供了全面支持。

但是....

bi::bind没有打算支持boost库, 如果在你的项目中使用了其它的boost‘tools,那你就不需要它了(或许也可以拿来研究研究),既然使用了boost,就不在乎在使用boost::bind了,所以boost::bind中涉及到与其它boost库的有交集的功能bi::bind库都没有支持。

它自然支持 boost::shared_ptr, 同时对c++10 保标准的shared_ptr也有很好的支持。

bi::bind借鉴了boost::bind的一些思想,有些代码甚至是直接从bind.hpp中复制过来的,但它在牺牲一些扩展性和多平台支持性的后果下, 同样的代码比boost::bind中有40%的效率提升 。

bi-bind 同时提供了 callback功能, 它就像是一个简化版本的 boost::function, 对一次调用行为做了抽象。

例如:

int fun1(int p2)
{
   std::cout 

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • java命名空间javax.naming类binding的类成员方法: binding定义及介绍
  • debian下安装bind用./configure时提示安装bind时./configure提示whether make sets $(MAKE)... no
  • java命名空间javax.print.attribute.standard类finishings的类成员方法: bind定义及介绍
  • 如何实现bind下的域名解析分级
  • java命名空间javax.xml.ws.http接口httpbinding成员方法: http_binding定义参考
  • DNS服务器软件 BIND 10
  • java命名空间javax.naming接口context的类成员方法: bind定义及介绍
  • bind为什么会出错?????
  • java命名空间java.net类datagramsocketimpl的类成员方法: bind定义及介绍
  • 如何卸载自己安装的bind
  • java命名空间java.net类socketimpl的类成员方法: bind定义及介绍
  • 网络编程里解决bind绑定的问题?
  • java命名空间javax.naming类initialcontext的类成员方法: bind定义及介绍
  • 帮忙解释一下三个术语:binding/late binding/virtual method invocation
  • java命名空间javax.xml.ws.soap接口soapbinding成员方法: soap12http_binding定义参考
  • bind9.tar.gz的问题
  • java命名空间javax.naming.directory接口dircontext的类成员方法: bind定义及介绍
  • socket编程 中的bind问题
  • java命名空间javax.xml.ws.soap接口soapbinding成员方法: soap11http_binding定义参考
  • 如何知道一个用有没有权限调用bind()函数(socket编程的时候)
  • java命名空间javax.naming.directory类initialdircontext的类成员方法: bind定义及介绍
  • socket中bind时报权限错误


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3