注册 登录  
 加关注
查看详情
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

为着理想勇敢前进

 
 
 

日志

 
 

点评Boost的库(g h i j k l)  

2007-06-30 17:19:22|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
虽然题目写的是 g h i j k l ,实际上 boost 并没有 h j k 开头的库。只有 g i l的。

graph - Generic graph components and algorithms, from Jeremy Siek and a University of Notre Dame team.
这个图既不是图形也不是图像,而是“有向图”、“无向图”那个图,我没用过。

integer - Headers to ease dealing with integral types.
用来操作整数的一些东西。用处不大。有一些编译时运算的模板工具已经被 MPL 取代。最有可能用到的是 cstdint.hpp ,把 VC 定义的非标准整数类型按标准重新定义了一下。

interval - Extends the usual arithmetic functions to mathematical intervals, from Guillaume Melquiond, Herv? Br?nnimann and Sylvain Pion.
一个数学库,没用过。

in_place_factory, typed_in_place_factory- Generic in-place construction of contained objects with a variadic argument-list, from Fernando Cacciola.
对 C++ 的特性 inplace new 做了一个简单的包装。用处不大。

io state savers - Save I/O state to prevent jumbled data, from Daryle Walker.
用来保存标准库的流的各种状态的。说实话,标准库的流本来就是一个比较糟糕的设计,做了太多事情。前段时间 boost 的邮件列表上有讨论新的 C++ IO 模型的。相比之下,新的 C++ IO 模型要比在现有的基础上修修补补更有前途

iostreams - Framework for defining streams, stream buffers and i/o filters, from Jonathan Turkanis.
这又是一个给标准库的流和流缓冲区修修补补的库。写一个标准库的流很麻烦,要自己实现streambuf里面一大堆糟糕的接口。这个库的作用就是帮你实现这些,你只用些很少的一点代码就可以实现一个流了。不过这个实现我也不满意,也是做了太多不需要他做的事情,没有把缓存从流里面剥离出来。

iterators - Iterator construction framework, adaptors, concepts, and more, from Dave Abrahams, Jeremy Siek, and Thomas Witt.
提供一些经过过滤的或者修饰的枚举器。我没用过。

lambda - Define small unnamed function objects at the actual call site, and more, from Jaakko J?rvi and Gary Powell.
匿名函数库,通过重载运算符来定义匿名函数。想当年第一次看到这玩意儿的时候立刻就拜倒在它的脚下了。太强了……当然,说强仅仅是因为这很匪夷所思,看看吧:
(_1 + _2)(123, 456)
这个(_1 + _2)定义了一个匿名函数,有两个参数,返回值是这两个参数的和。而后面的(123, 456),则是用123和456来调用这个匿名函数。
其实等到我见多识广了以后,我才发现原来lambda的实现并不算好,调用函数的时候需要 bind 也很麻烦,其实呢,目前做 spirit 那个库的人已经写了一个全新的匿名函数库,叫做 phenix (甚至版本号都已经是 2.0 了),用起来就要比现在的 lambda 库来得好用。
我也对 lambda 表达式的一个子集,无状态的静态 lambda 有兴趣,目前正在写那个 static_lambda 库。我前几天的日志里面说到打算放弃,看看 phenix 是不是已经有这个实现了。不过这两天我看的结果是我的功能和 phenix 没有重叠部分。而且我受限于全部都是静态表达式,表达式语法会有很多不同,所以我应该会完成这个库。对我写这个 static_lambda 有兴趣的,可以点这里看看:http://thread.gmane.org/gmane.comp.lib.boost.devel/161554


  评论这张
 
阅读(355)| 评论(2)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018