版本 1.36.0
版本 1.36.0
8 月 14 日, 2008 12:00 GMT
平台 | 文件 |
---|---|
unix | boost_1_36_0.tar.bz2 |
boost_1_36_0.tar.gz | |
windows | boost_1_36_0.7z |
boost_1_36_0.zip |
新库
-
Accumulators: 来自 Eric Niebler 的增量计算和统计累加器框架。
-
Exception: 用于在异常对象中传输任意数据,以及在线程之间传输异常的库,来自 Emil Dotchevski。
-
Units: 来自 Matthias Schabel 和 Steven Watanabe 的零开销维度分析和单位/数量操作及转换。
-
Unordered: 来自 Daniel James 的无序关联容器。
更新的库
-
Asio:
-
增加了对串行端口的支持。
-
增加了对 UNIX 域套接字的支持。
-
增加了对原始套接字和 ICMP 的支持。
-
为 POSIX 面向流的文件描述符(不包括常规文件)添加了包装器。
-
为 Windows 面向流的
HANDLE
(例如命名管道)添加了包装器(需要与 I/O 完成端口一起工作的HANDLE
)。 -
为 Windows 随机访问
HANDLE
(例如文件)添加了包装器(需要与 I/O 完成端口一起工作的HANDLE
)。 -
使用新的
null_buffers
类型添加了对反应器风格操作(即,它们报告就绪状态但不执行 I/O)的支持。 -
为缓冲区序列的按字节遍历添加了迭代器类型。
-
添加了新的
read_until()
和async_read_until()
重载,它们接受用户定义的函数对象来定位消息边界。 -
添加了一个实验性的双锁队列(通过定义
BOOST_ASIO_ENABLE_TWO_LOCK_QUEUE
启用),它可以在多个处理器上提供更好的io_service
可伸缩性。 -
各种修复、性能改进以及更完整的自定义内存分配支持覆盖。
-
-
Assign:
list_of()
(及其变体)现在具有重载的比较运算符。这允许您编写测试代码,例如BOOST_CHECK_EQUAL( my_container, list_of(2)(3)(4)(5) );
。 -
循环缓冲区:
-
默认构造函数现在不分配内存,并将缓冲区容量设置为 0
-
-
Function:
-
改进的分配器支持,来自 Emil Dotchevski。
-
-
Interprocess:
-
为 UNIX 系统添加了匿名共享内存。
-
修复了托管内存类上缺少移动语义的问题。
-
为共享内存和映射文件托管类添加了 copy_on_write 和 open_read_only 选项。
-
shared_ptr
是可移动的并支持别名。
-
-
Intrusive:
-
为单链表添加了
linear<>
和cache_last<>
选项。 -
为无序容器钩子添加了
optimize_multikey<>
选项。 -
当钩子中使用
store_hash
选项时,优化了无序容器。 -
更改了实现以避免显式使用
try
-catch
块,并可在禁用异常的情况下编译。
-
-
Math:
-
添加了新的非中心卡方分布、Beta 分布、F 分布和 T 分布。
-
添加了指数积分和 Zeta 特殊函数。
-
添加了舍入、截断和单位在最后一位的函数。
-
添加了对运行时基数的编译时幂的支持。
-
为 Lanczos 近似添加了一些基于 SSE2 的优化。
-
-
MPI:
-
增加了对 Python 中非阻塞操作的支持,来自 Andreas Klöckner。
-
增加了对图拓扑的支持。
-
-
Multi-index Containers: 细微的添加和维护修复。有关更多信息,请查阅库发行说明。
-
PtrContainer: 支持更多容器,并添加了插入迭代器。有关详细信息,请参见升级详情。
-
Thread:
-
新的通用
lock
和try_lock
函数,用于一次锁定多个互斥锁。 -
在编译器支持的情况下,为移动语义提供 Rvalue 引用支持。
-
修复了一些错误并添加了缺少的函数(包括严重的 win32 条件变量错误)。
-
scoped_try_lock
类型现在向后兼容 Boost 1.34.0 和以前的版本。 -
支持通过向
thread
构造函数提供额外的参数,将函数参数传递给线程函数。 -
为
timed_lock
和timed_wait
函数添加了向后兼容的重载,以允许使用xtime
进行超时。
-
-
Xpressive: 来自 Eric Niebler 的正则表达式,可以编写为字符串或表达式模板,并且可以相互引用和自身递归引用,具有上下文无关文法的强大功能。
-
skip()
用于指定在将输入序列与正则表达式匹配时要忽略的输入序列部分。 -
regex_replace()
除了格式字符串外,还接受格式化程序对象和格式化程序表达式。 -
基于范围的
regex_replace()
算法。 -
修复了当语义动作放置在look-ahead、look-behind 或独立子表达式中时发生的崩溃。
-
测试的编译器
Boost 的主要测试编译器是
-
Mac OS X 10.4.10 上的 GCC 4.01,带有 Intel 和 Power PC
-
Ubuntu Linux 8.04.1 上的 GCC 4.2.3
-
HP-UX 64 位上的 HP C/aC++ B3910B A.06.17
-
Visual C++ 9.0 SP1 beta、8.0 SP1 和 7.1,均在 Windows XP SP-2 上
Boost 的其他测试编译器包括
-
FreeBSD-7 上的 GCC 4.2.1
-
NetBSD 上的 GCC 4.1.2
-
OS: HP-UX B.11.31 U ia64 和 HP-UX B.11.31 9000/800 RISC 上的 HP aCC
-
AIX 版本 5.3.0.40 上的 IBM XL C/C++ Enterprise Edition for AIX, V10.1.0.0
-
Mac OS X 10.4.1 上的 Intel 9.1、10.0 和 10.1
-
Compaq Tru64 Unix on an OSF1 V5.1 平台上的 Compaq C++ V7.1-006。
-
Sun Solaris 5.10 上的 Sun C++ 5.7、5.8、5.9 和 GCC 3.4.6。
-
在 Linux 上
-
GCC 3.4.3、4.0.1、4.2.1、4.3.0。
-
带有 C++0x 扩展的 GCC 4.3.0。
-
64 位 linux 上的 GCC 3.4.6、4.1.1、4.2.1。
-
Intel C++ 8.1、9.0 和 9.1。
-
QLogic PathScale(TM) 编译器套件:版本 3.1
-
x86-64 Linux 上的 pgCC 7.2-3 64 位目标
-
-
在 Windows 上
-
带有 Visual C++ 9 后端的 Intel 10.1。
-
在 Visual C++ 7.1、8.0、9.0 上进行了大量测试
-
带有 Apache C++ Standard Library 4.2.x 分支的 Visual C++ 7.1。
-
带有 STLport 5.1 的 Visual C++ 8.0
-
带有 STLport 5.1 交叉编译的 Visual C++ 8.0,用于 Windows Mobile 5.0 Pocket PC SDK (ARMV4I)。
-
Borland 5.6.4、5.8.2、5.9.3
-
带有 Visual C++ 9 后端的 64 位 Intel 10.1。
-
64 位 Visual C++ 9。
-
带有 Visual C++ 9 后端的 Comeau C++ 4.3.10.1 beta 2。
-
致谢
Beman Dawes、Rene Rivera 和 Daniel James 管理了此版本。