版本 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 |
补丁
-
Locale Patch - 修复了一个导致
boost::locale::utf::utf_traits
接受一些无效 UTF-8 序列的错误,这是一个可能的安全漏洞。
新库
-
Heap: 优先级队列数据结构,来自 Tim Blechmann。
更新的库
-
Asio:
-
添加了一个新的类模板
basic_waitable_timer
,它基于 C++11 时钟类型要求。它可以与来自 C++11<chrono>
库设施的时钟一起使用,或者在这些不可用时,与 Boost.Chrono 一起使用。typedefshigh_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,如果抛出错误,directory_iterator 在 Windows 上访问冲突。感谢 Andreas Eckleder 的补丁。
-
修复 #5900 注释 2,director_iterator 构造函数中带有 error_code 参数的错误,该错误导致在未传递 ec 参数的情况下调用 increment。
-
修复 #5989,清理测试套件 path_test.cpp 代码,即使该 ticket 本身不是缺陷,并澄清文档;迭代路径产生通用格式。
-
修复 #5592,将 Windows codecvt 处理从 CP_THREAD_ACP 更改为 CP_ACP。
-
PGI 编译器的操作函数修复,感谢 Noel Belcourt。
-
放宽权限测试以反映现实,尤其是在 Sandia 测试平台上。
-
-
Geometry:
-
修复了错误
-
多几何图形的距离忽略了指定的距离策略。
-
在 polygon/multi_polygon 的差集中 (2011/10/24 在 GGL 列表中报告)。
-
为计算多几何图形的距离引发异常,其中一个是空的
-
Multi DSV 未正确使用设置。
-
自相交有时可能会被遗漏(在 1.48 中引入)。
-
凸包在空范围上崩溃(例如,空多点)。
-
-
附加功能
-
支持线/多边形交集和差集
-
支持不同点类型的线段/框的转换
-
支持多点的追加
-
标量函数(距离、面积、长度、周长)现在在空输入时抛出 empty_input_exception
-
-
文档
-
更新的支持状态
-
-
内部更改
-
距离/转换/赋值/面积的特化/未实现更新
-
将 wkt/dsv 移动到 io 文件夹,使域变得冗余
-
策略概念分配为零以避免 clang 警告 (由 Vishnu 修复)
-
-
-
Locale:
-
修复了在检测无效输入序列时错误使用
MultiByteToWideChar
的问题。
-
-
Thread:
-
修复的 Bug
-
#2309 Boost.Thread 中缺少 g++ 符号可见性支持。
-
#2639 应该扩展文档 (defer_lock, try_to_lock, ...)。
-
#3639 Boost.Thread 无法在 Linux 上的 Sun-5.9 上构建。
-
#3762 Thread 无法使用 winscw (Nokia 的 Codewarrior) 编译。
-
#3885 关于 boost.thread 和本机线程 api 混合使用的文档。
-
#3975 promise::set_wait_callback() 的不正确前提条件。
-
#4048 thread::id 格式化涉及 locale
-
#4315 gcc 4.4 警告:inline ... 声明为 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
-
Clang from subversion
-
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 管理了此版本。