版本 1.49.0
版本 1.49.0
2012年2月24日 21:20 GMT
平台 | 文件 |
---|---|
Unix | boost_1_49_0.tar.bz2 |
boost_1_49_0.tar.gz | |
Windows | boost_1_49_0.7z |
boost_1_49_0.zip |
补丁
-
区域设置补丁 - 修复了一个导致
boost::locale::utf::utf_traits
接受一些无效 UTF-8 序列的错误,这是一个可能的安全漏洞。
新增库
-
Heap: 优先队列数据结构,来自 Tim Blechmann。
更新库
-
Asio:
-
添加了一个新的类模板
basic_waitable_timer
,它基于 C++11 时钟类型要求。它可以与 C++11<chrono>
库工具中的时钟一起使用,或者,如果这些不可用,则可以使用 Boost.Chrono。可以使用 typedefhigh_resolution_timer
、steady_timer
和system_timer
为标准时钟类型创建计时器对象。 -
添加了一个新的
windows::object_handle
类,用于在 Windows 内核对象上执行等待。感谢 Boris Schaeling 为此功能的开发做出了重大贡献。 -
在 Linux 上,
connect()
在某些情况下可能会返回 EAGAIN。将其重新映射到另一个错误,使其看起来不像非阻塞操作(#6048)。 -
修复了 NetBSD 上的编译错误(#6098)。
-
修复了 Mac OS X 上的死锁问题(#6275)。
-
修复了
buffered_write_stream
中的回归问题(#6310)。 -
修复了 Windows 上在没有任务执行时重复运行
io_service
导致的非分页池“泄漏”问题(#6321)。 -
恢复了之前的更改,允许在不持有锁的情况下执行一些推测性操作,因为它在某些多线程场景中引入了竞争条件。
-
修复了如果第一个缓冲区为空,则两个缓冲区数组中的第二个缓冲区可能被忽略的错误。
-
-
Filesystem:
-
修复 #3714,添加了测试用例并修复了赋值或追加使用自身或自身的一部分作为源时出现的类路径错误。
-
修复 #5652,recursive_directory_iterator 在循环符号链接上失败。感谢 Daniel Aarno 提供的补丁。
-
修复 #5653,recursive_directory_iterator(error_code) 仍然可以抛出 filesystem_error。
-
修复 #5900,如果抛出错误,Windows 上的 directory_iterator 会出现访问冲突。感谢 Andreas Eckleder 提供的补丁。
-
修复 #5900 评论 2,director_iterator 构造函数中使用 error_code 参数的错误导致在未传递 ec 参数的情况下调用了 increment。
-
通过清理测试套件 path_test.cpp 代码修复 #5989,即使 ticket 本身没有缺陷,并澄清了文档;对路径的迭代会产生通用格式。
-
修复 #5592,将 Windows codecvt 处理从 CP_THREAD_ACP 更改为 CP_ACP。
-
针对 PGI 编译器的操作函数修复,感谢 Noel Belcourt。
-
放宽权限测试以反映现实,尤其是在 Sandia 测试平台上。
-
-
Geometry:
-
修复的错误
-
多几何图形的距离忽略了指定的距离策略。
-
多边形/多边形的差异(2011/10/24 在 GGL 列表中报告)。
-
如果其中一个多几何图形为空,则在计算距离时引发异常
-
多 DSV 未正确实用设置。
-
有时可能会遗漏自相交(在 1.48 中引入)。
-
凸包在空范围内崩溃(例如空多点)。
-
-
附加功能
-
支持线/多边形相交和差集
-
支持转换不同点类型的线段/框
-
支持为多点追加
-
标量函数(距离、面积、长度、周长)现在在输入为空时抛出 empty_input_exception
-
-
文档
-
更新的支持状态
-
-
内部更改
-
更新了距离/转换/赋值/面积的 specializations/not_implemented
-
将 wkt/dsv 移动到 io 文件夹,使域冗余
-
将策略概念分配给零以避免 clang 警告(由 Vishnu 修补)
-
-
-
Locale:
-
修复了在检测无效输入序列时对
MultiByteToWideChar
的错误使用。
-
-
Thread:
-
修复的错误
-
#2309 Boost.Thread 缺少 g++ 符号可见性支持。
-
#2639 应扩展文档(defer_lock、try_to_lock 等)。
-
#3639 Boost.Thread 无法在 Linux 上使用 Sun-5.9 构建。
-
#3762 无法使用 winscw(诺基亚的 Codewarrior)编译线程。
-
#3885 记录有关 boost.thread 和原生线程 api 混合使用的情况。
-
#3975 promise::set_wait_callback() 的前提条件不正确。
-
#4048 thread::id 格式化涉及区域设置
-
#4315 gcc 4.4 警告:内联...声明为 dllimport:属性被忽略。
-
#4480 OpenVMS 补丁,用于解决编译器问题。
-
#4819 boost.thread 的文档打印错误。
-
#5040 boost::thread 中的 future.hpp 无法使用 /clr 编译。
-
#5423 C++0x 的线程问题。
-
#5502 shared_mutex timed_lock 和 lock_shared 之间的竞争条件。
-
#5594 boost::shared_mutex 与 Windows CE 不完全兼容。
-
#5617 boost::thread::id 复制构造函数。
-
#5739 gcc-4.6 的 set-but-not-used 警告。
-
#5826 threads.cpp:线程创建失败时的资源泄漏。
-
#5839 thread.cpp:ThreadProxy 在出现异常时泄漏。
-
#5859 win32 shared_mutex 构造函数在出现异常时泄漏。
-
#6100 在 GLIBC 系统上使用 get_nprocs() 计算 hardware_concurrency()。
-
#6141 当 boost.thread 和 boost.move 一起使用时出现编译错误。
-
#6168 recursive_mutex 使用了错误的配置符号(可能是拼写错误)。
-
#6175 使用 SunStudio 编译时出错。
-
#6200 修复 condition_variable 和 mutex 错误,以便更好地处理 EINTR。
-
#6207 shared_lock swap 在 clang 3.0 c++11 上出现编译错误。
-
#6208 try_lock_wrapper swap 在 clang 3.0 c++11 上出现编译错误。
-
-
-
xpressive:
-
消除 gcc 上的一些未使用的变量警告。
-
测试过的编译器
Boost 的主要测试编译器是
-
Linux
-
Intel: 11.1
-
LLVM Clang 2.8
-
GCC: 3.4.6, 4.2.4, 4.3.4, 4.4.3, 4.5.2, 4.6.2
-
GCC, C++0x 模式: 4.3.4, 4.4.3, 4.5.2
-
-
OS X
-
Intel: 11.1
-
GCC: 4.2.1, 4.4.4
-
GCC, C++0x 模式: 4.4.4
-
-
Windows
-
Visual C++ 8.0, 9.0, 10.0
-
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.1, 4.7.0
-
-
FreeBSD
-
GCC 4.2.1,32 位和 64 位。
-
-
QNX
-
QCC, C++0x 模式: 4.4.2, 4.6.1, 4.6.2
-
Boost 的其他测试编译器包括
-
Linux
-
GCC: 4.2.4, 4.3.4, 4.4.4, 4.5.2, 4.6.2
-
GCC, C++0x 模式: 4.3.4, 4.4.4, 4.5.2
-
pgCC: 11.9
-
Intel: 10.1, 11.1, 12.0
-
PathScale: 4.0.8
-
Visual Age 10.1
-
-
OS X
-
来自 subversion 的 Clang
-
Intel 11.1, 12.0
-
GCC: 4.4.4
-
GCC, C++0x 模式: 4.4.4
-
-
Windows
-
Visual C++ 8.0, 9.0, 10.0
-
Visual C++ with STLport: 9.0
-
Visual C++,Windows Mobile 5, with STLport: 9.0
-
GCC, mingw: 4.4.0, 4.5.2
-
GCC, C++0x 模式, mingw: 4.5.2
-
GCC, mingw 64-bit: 4.4.7, 4.5.4, 4.6.1
-
-
AIX
-
IBM XL C/C++ Enterprise Edition, V11.1.0.0
-
-
FreeBSD
-
GCC 4.2.1,32 位和 64 位
-
-
Solaris
-
Sun 5.10
-
致谢
Beman Dawes、Eric Niebler、Rene Rivera、Daniel James 和 Vladimir Prus 管理了此版本。