boost有用的库信息

openkk 13年前
     boost是一系列C++模板库组成的免费,可移植,开源的程序库.网络上关于boost的文章已经很多.    <br />     这里摘记一些库的信息,供自己日后参考.    <br />    <br />    <span style="font-weight:bold;">0.foreach</span> - BOOST_FOREACH 宏可以很容易地遍历一个序列的所有元素    <br />       PS:   非常优秀,值得参考使用.    <br />    <span style="font-weight:bold;">1.bind and mem_fn</span> - 泛型绑定器,用于函数/对象/指针和成员函数    <br />       PS:  非常优秀,高效率,值得参考使用.    <br />    <span style="font-weight:bold;">2.asio</span> - 可移植的网络和其它底层I/O,包括 sockets, 定时器, 主机名解释,socket 输入输出流,串行端口,文件描述符和 Windows HANDLEs    <br />        PS: 很优秀,值得参考使用.    <br />    <span style="font-weight:bold;">3.smart_ptr</span> - 五种智能指针类模板    <br />       PS:  shared_ptr很不错.    <br />    <span style="font-weight:bold;">4.signals</span> - 可管理的信号和插槽回调实现    <br />    <span style="font-weight:bold;">signals2</span> - 可管理的信号和插槽回调实现(线程安全的版本2)    <br />       PS:  还不错.    <br />    <span style="font-weight:bold;">5.function</span> - 延期调用和回调的函数对象包装    <br />       PS:  不错.    <br />    <span style="font-weight:bold;">6.assign</span> - 以从所未有如此容易的方法将常数或生成的数据填入容器    <br />       PS: 方便操作C++容器,值得使用. vector v;  v+=1,2,3,4,5;    <br />    <span style="font-weight:bold;">7.string_algo</span> - 字符串算法库    <br />       PS:  非常优秀,值得使用和参考    <br />    <span style="font-weight:bold;">8.regex</span> - 正则表达式库    <br />       PS:  有点意思,但个人使用正则机会不多.    <br />    <span style="font-weight:bold;">9.property tree</span> - 一个树型数据结构,尤其适合于保存配置数据    <br />       PS:  有点意思.    <br />    <span style="font-weight:bold;">10.lexical_cast </span>- 通用的字面文本转换,如:将 int 表示为字符串,或反之    <br />       PS:  对stringstream的包装而已. 看个人习惯了,如果习惯了多敲几行stringstream代码,就没必要用这个.    <br />    <span style="font-weight:bold;">11.optional</span> - 任意值的可区别联合包装    <p>      PS:  想法很好,值得使用, 不过optional<bool> 是个硬伤,个人觉得由于其语义已经完全不同了, 应该设法禁用或者严格区别开来; 但作者并没这样做.</p>    <p><span style="font-weight:bold;">12.tuple </span>- 更易于定义返回多个数值的函数,<br />       PS:  很有意思.值得使用</p>    <p><span style="font-weight:bold;">13.tokenizer </span>- 将一个字符串或其它字符序列分解为一系列记号<br />       PS:  有点意思.</p>    <p><span style="font-weight:bold;">14.filesystem</span> - 可移植的路径、目录遍历和其它有用的文件系统操作<br />        PS:  有点意思,可以考虑.</p>    <p><span style="font-weight:bold;">15.python </span>- 将C++的类和函数反射到 Python,  <br />       PS:  未研究,不过网上推荐很高.我会挤出时间研究的.</p> thread - 可移植的C++多线程    <br />    <p>      PS:  暂时还不成熟</p>    <p>operators - 用模板来简化算术类和迭代器<br />       PS:  有点意思.但使用机会还是不多.</p> date_time - 日期-时间库,    <br />       PS:  很全,但细节太多,怪异....    <br /> utility - 类 noncopyable 和 checked_delete(), checked_array_delete(), next(),  prior() 函数模板,再加上 base-from-member idiom,    <br />       PS:  有点意思.    <br /> crc - 循环冗余码,    <br />       PS:  值得参考使用.    <br /> tribool - 三态布尔类型库.    <br />       PS:  用处不大    <br /> timer - 事件定时器,进度计时器,以及进度显示类    <br />       PS: 未研究        <br /> pool - 内存池管理.    <br />       PS:  有点意思.    <br /> exception - 用于在异常对象中传送任意数据的库,可以在线程间传送异常(N2179)    <br />       PS:  使用C++异常时,可以修改异常信息,个人用处不大.    <br /> flyweight - 管理大量高度冗余的对象的一个设计模式    <br />        PS:  未研究.    <br /> test - 支持简单的程序测试、全单元测试,以及程序执行监控.    <br />        PS:  未研究.    <br /> system - 操作系统支持,包括即将成为 C++0x 标准库组成部分的诊断支持    <br /> program_options - 存取来自命令行、配置文件或其它来源的配置数据    <br />       PS:  不那么好用.    <br /> interprocess - 共享内存、内存映射文件、进程共享互斥体、条件变量、容器和分配器    <br />       PS:  未研究    <br />    <br /> hash - 一个 TR1 的散列函数对象,可以扩展为对用户定义类型进行散列    <br />       PS:  不错.    <br /> any - 保存具有不同值类型的单个值的一种安全、泛型的容器    <br />         PS: 用处不大.    <br /> variant - 安全、泛型、基于栈的可识别联合的容器    <br />       PS:  个人用处不大.    <br /> unordered - 无序关联式容器    <br />       PS:  未研究    <br /> array - 兼容STL的容器,是固定大小的数组的包装    <br />       PS: 用处不大.    <br /> bimap - 双向 maps.    <br />       PS:  编译代价貌似很大?    <br /> dynamic_bitset - 一个在运行期可变大小的 std::bitset 版本    <br />       PS: 个人用处不大.    <br />    <p>compressed_pair - 空成员优化<br />       PS: 个人用处不大.<br /> intrusive - 插入式的容器和算法<br />       PS: 个人用处不大.</p>    <p> 前16个真的很不错, boost还有剩余的一些库没罗列,它们使用的可能很小.</p>