版本 1.43.0
版本 1.43.0
2010年5月6日 12:00 GMT
平台 | 文件 |
---|---|
unix | boost_1_43_0.tar.bz2 |
boost_1_43_0.tar.gz | |
windows | boost_1_43_0.7z |
boost_1_43_0.zip |
新库
-
Functional/factory: 来自 Tobias Schwinger 的用于动态和按值构造的函数对象。
-
Functional/forward: 来自 Tobias Schwinger 的用于解决转发问题的函数对象适配器。
主要更新
-
Range: Boost.Range 经历了广泛的更新,包含了最近审查的 Boost.RangeEx 中的所有功能,来自 Neil Groves。
-
基于范围的完整 STL 迭代器算法版本。
-
范围适配器可以与基于范围的算法结合使用,以实现前所未有的表达性和效率。
-
新函数:irange、istream_range、join、combine。
-
更新的库
-
Accumulators:
-
避免在运算符重载返回类型中过早地进行模板求值。
-
-
Array:
-
添加了对 SunCC 编译器的支持。
-
添加了 'fill' 成员函数。
-
更改了异常代码以使用 boost::throw_exception。
-
-
Asio:
-
性能提升。
-
减少了编译时间。
-
减少了生成的代码大小。
-
扩展了后台线程不调用用户代码的保证到所有异步操作 (#3923)。
-
更改为在 Linux 上使用边缘触发的 epoll。
-
更改为在 Linux 上使用
timerfd
调度定时器(如果可用)。 -
更改为在 Mac OS X 和 BSD 平台上使用带有 kqueue 的单次通知。
-
根据 TR2 提案,添加了位掩码类型
ip::resolver_query_base::flags
。此类型阻止从int
到flags
的隐式转换,允许编译器捕获用户错误地将数字端口号作为服务名称传递的情况。 -
修复了一个 bug,其中 0 字节异步读取错误地将
error::eof
结果传递给完成处理程序 (#4023)。 -
更改了解析器实现,不再需要 typedef
InternetProtocol::resolver_query
和InternetProtocol::resolver_iterator
,因为这些 typedef 都不属于文档化的InternetProtocol
要求。ip::tcp
、ip::udp
和ip::icmp
类中对应的 typedef 已被弃用。 -
修复了非基于
select()
的 reactor 的带外处理。 -
添加了新的
BOOST_ASIO_DISABLE_THREADS
宏,该宏允许独立禁用 Asio 的线程支持。 -
小的文档改进。
-
-
Multi-index Containers:
-
非默认可构造值的序列化现在通过用户提供的工具
save_construct_data
和load_construct_data
得到正确支持。multi_index_container
序列化 类版本已从 1 提升到 2。
-
-
Proto:
-
行为上的小变化:非 const 表达式自赋值会创建一个赋值节点。有关详细信息,请参阅 Proto 的 发行说明。
-
对推荐的表达式扩展机制的微小更改:使用
BOOST_PROTO_EXTENDS_USING_ASSIGN()
。有关详细信息,请参阅 Proto 的 发行说明。 -
修复了在 Proto 转换中调用可调用单态函数对象时发生的错误。
-
修复了其他 const 正确性问题,并规避了 fusion bug。
-
向 proto 终端添加了非 const 函数调用重载。
-
向
proto::literal<>
添加了默认构造函数。 -
不要使用已弃用的配置宏。
-
添加了
proto::assert_matches()
函数及其友元到<boost/proto/debug.hpp>. -
functional::make_expr<>
和functional::unpack_expr<>
返回 const 限定的右值。 -
为 Expr 和 Domain 概念添加了文档。
-
-
Random:
-
将 random_device 的实现放在编译后的库中,并添加了 Windows 支持。
-
使用 Quickbook/Doxygen/Boostbook 重写了文档,并使其保持最新。
-
-
Thread:
-
对除
thread_interrupted
之外的所有异常使用boost::throw_exception
-
添加了针对问题 2742 的修复
-
对互斥锁和
call_once
的优化
-
-
Xpressive:
-
添加缺少的包含到<boost/xpressive/regex_error.hpp>.
-
构建系统
-
当交叉编译到 GNU 目标时,静态库已正确创建。以前,使用此类库会导致存档没有索引错误。
-
现在,在 Windows 上使用 gcc 编译器(mingw 和 cygwin)的 DLL 和导入库的命名与这些环境的默认约定相匹配。以前,命名方案与其他 Windows 编译器相同。
更新的工具
-
Quickbook:
-
Unicode 转义字符。
-
支持 UTF-8 字节顺序标记。
-
不允许在简单标记中使用
[
。修复了一些标点符号不匹配的错误。 -
添加了一个命令行标志 (
-D
) 以在命令行中定义宏。 -
改进的后处理器输出。
-
检查
[section]
和[endsect]
标签在模板中是否平衡。
-
已测试的编译器
Boost 的主要测试编译器是
-
OS X
-
Intel Leopard 上的 GCC 4.0.1。
-
-
Linux
-
Ubuntu Linux 上的 GCC 4.4.1。
-
64 位 Suse 上的 GCC 4.4。
-
-
Windows
-
Windows XP 上的 Visual C++ 8.0 SP1 和 9.0 SP1。
-
GCC 4.3.3,使用 Mingw
-
-
FreeBSD
-
GCC 4.2.1,32 位和 64 位。
-
Boost 的其他测试编译器包括
-
Linux
-
32 位 Red Hat Enterprise Linux 上的 Intel 10.1、11.1。
-
64 位 Red Hat Enterprise Linux 上的 Intel 10.1、11.0、11.1。
-
Red Hat Enterprise Linux 上的 GCC 3.4.6、4.2.4、4.3.4、4.4.3。
-
Red Hat Enterprise Linux 上带有 C++0x 扩展的 GCC 4.3.4、4.4.3。
-
Red Hat Enterprise Linux 上的 QLogic PathScale(TM) 编译器套件:版本 3.2。
-
-
OS X
-
Leopard 上的 Intel C++ Compiler 10.1、11.0、11.1。
-
Intel Leopard 上的 GCC 4.0.1。
-
来自 subversion 的 Clang。
-
-
Windows
-
32 位 XP 上的 Visual C++ 8,0、9,0。
-
在 XP 和 Windows Mobile 5.0 上使用 STLport 5.2 的 Visual C++ 9.0。
-
XP 上的 Visual C++ 10.0。
-
64 位 Windows 7 上的 Visual C++ 10.0。
-
Borland/Codegear C++ 5.9.3、6.1.3 (2009)、6.2.1 (2010)。
-
在 Vista 32 位上,带有 Visual C++ 9.0 后端的 Intel C++ 11.1。
-
Mingw 上的 GCC 4.3.3。
-
在 Mingw 上,带有和不带有 C++0x 扩展的 GCC 4.4.3。
-
Mingw 上的 GCC 4.5。
-
-
AIX
-
AIX 版本 5.3.0.40 上的 IBM XL C/C++ Enterprise Edition,V10.1.0.0。
-
-
FreeBSD
-
64 位 FreeBSD 7.2 上的 GCC 4.2.1。
-
32 位 FreeBSD 8.0 上的 GCC 4.2.1。
-
-
Solaris
-
Solaris 5.10 上的 Sun C++ 5.10。
-
致谢
Beman Dawes、Eric Niebler、Rene Rivera、Daniel James 和 Vladimir Prus 管理了此版本。