版本 1.50.0
版本 1.50.0
2012年6月28日 12:48 GMT
平台 | 文件 |
---|---|
unix | boost_1_50_0.tar.bz2 |
boost_1_50_0.tar.gz | |
windows | boost_1_50_0.7z |
boost_1_50_0.zip |
补丁
-
Boost.Unordered 补丁 - 修复了在使用 C++11 编译器但使用 C++03 分配器编译时的一个错误。当插入元素时,
allocator_traits
检测到可以使用意外的隐式转换来构造节点,这会导致一些问题。 -
Locale 补丁 - 修复了一个错误,该错误导致
boost::locale::utf::utf_traits
接受一些无效的 UTF-8 序列,这是一个可能的安全漏洞。
新库
-
Algorithm: 来自 Marshall Clow 的有用的通用算法集合。这包括几种不同的搜索算法,以及 C++11 标准库中的大多数新算法
-
Functional/OverloadedFunction: 将不同的函数重载到单个函数对象中,来自 Lorenzo Caminiti。
-
LocalFunction: 在其他函数内部,直接在需要它们的作用域内本地编程函数,来自 Lorenzo Caminiti。
-
Utility/IdentityType: 将类型包装在圆括号内,以便它们始终可以作为宏参数传递,来自 Lorenzo Caminiti。
更新的库
-
Concept Check:
-
已修复
-
#6738 隐藏变量警告。
-
-
-
Filesystem:
-
从发行版中删除 Filesystem Version 2。Version 3 现在是唯一发行的版本。仍然使用 V2 的用户应尽快迁移到 V3。
-
向类路径添加 constexpr value_type preferred_separator。
-
修复 #3737,Boost.Filesystem 无法在 Windows Mobile 上编译。在 Windows 上,不再包含
<sys/stat.h>
。 -
修复 #4065,Boost Filesystem 字典路径比较不一致。这需要进行多个源代码错误修复和代码清理,纠正与字典顺序问题无关的问题。
-
添加类路径成员函数 compare 以与 std::string 保持一致。
-
收紧
filesystem/config.hpp
中的BOOST_FILESYSTEM_DYN_LINK
和BOOST_FILESYSTEM_STATIC_LINK
逻辑,以便始终定义其中一个,并且同时定义两者都是#error
。 -
添加
path::operator+=
和 concat 函数以附加后缀或数字之类的内容。由 Ed Smith-Rowland 和其他人建议。 -
修复 #6809,MS Windows 的
filesystem::rename()
方法的实现错误,通过添加MOVEFILE_COPY_ALLOWED
来处理跨驱动器、卷、文件系统的重命名。修复对非 Windows 系统没有影响。 -
修复 #6819,源是单字符数组的路径操作数被视为空,即使它不为空。此类数组可能出现在联合中或使用 C 变量长度数组习惯用法的代码中。
-
修复 #6932,即使指定了
error_code
,create_directories 也会抛出异常。
-
-
Geometry:
-
修复的 Bug
-
整数点的可比较投影点策略的返回类型错误(整数),已修复
-
线段和多边形相交中的几个鲁棒性问题,已修复
-
无效的相交输出被过滤掉
-
multi_polygon 的 disjoint 可能会错误地返回 true,已修复
-
-
附加功能
-
为 *polygon/*polygon 添加了算法 "touches" (OGC SF 兼容)
-
-
-
Graph:
-
修复的 Bug
-
#4622 对具有自环的顶点执行 clear_vertex 可能会导致段错误。
-
#6033 biconnected_components(...) 计算的 Lowpoint 映射有时是错误的。
-
#6242 isomorphism 不会重置映射。
-
#6435 cube_topology 文档应说明 3D,而不是 2D。
-
#6520 graph_parallel 文档中的 small_world_1_70_6_0p02.png 已损坏。
-
#6564 subgraph 的 BGL 复制构造函数不跟踪本地顶点/边。
-
#6573 BGL: boost::isomorphism 例程在大型图上失败。
-
#6583 Dijkstra Visitor Concept 文档可能显示了错误的变量类型。
-
#6647 BGL strong_components 在 MSVC 8 上无法编译。
-
#6656 子图中使用的依赖类型未使用 typename。
-
#6707 is_straight_line_drawing.hpp 缺少 #include <map>。
-
#6708 使 is_straight_line_drawing.hpp 中的 bool boost::intersects() 内联?
-
#6739 无法将 write_graphviz_dp 与 constified subgraph 一起使用。
-
#6858 boost::get() 被 g++ 错误地解析。
-
#6892 bron_kerbosch_all_cliques() 不需要 VertexIndexGraph 概念。
-
Trac 中未包含的其他错误和警告。
-
-
-
Math:
-
提升了数学常量的地位,使其成为第一等公民,包括通过三个命名空间方便地访问最广泛使用的内置 float、double、long double。
-
添加了 Benjamin Sobotta 编写的 Owen's T 函数和偏态正态分布。
-
添加了 Hankel 函数。
-
更正了问题 #6627 nonfinite_num_put 格式化 0.0 不正确,基于 K R Walker 提交的补丁。
-
更改了常量初始化机制,使其即使对于用户定义的类型也是线程安全的,并且使用户定义的类型获得常量的完整精度,即使
long double
没有。因此,例如,128 位有理逼近将与 UDT 一起使用并执行正确的操作,即使long double
可能只有 64 或 80 位。 -
修复了
bessel_jy
中的问题,该问题导致 Y[sub 8.5](4[pi]) 产生 NaN。
-
-
MSM:
-
eUML:使用 eUML 定义为仅转换表的前端的更好语法。注意:重大更改!https://boost.ac.cn/doc/libs/1_50_0/libs/msm/doc/HTML/ch03s04.html#eUML-composite-table
-
Bugfix:仅当 initial_state 定义为序列时,图形构建才有效。
-
Bugfix:为 Terminate 或 Interrupt 状态定义的标志不再破坏这些状态的阻塞功能。
-
Bugfix:来自多个区域的多个延迟事件并非在所有情况下都有效。
-
Bugfix:访问者通过值传递给子机器。
-
Bugfix:对于向自身发送事件的子机器,未调用 no_transition。
-
修复了 gcc 的警告。
-
-
Program Options:
-
改进了错误报告 (来自 Leo Goodstadt 的补丁)。
-
支持自定义帮助消息中选项值的名称 (#4781)
-
修复了使用 gcc 4.7 的编译 (#6790)。
-
-
Proto:
-
当且仅当编译器实现 N3276 时,才使用基于
decltype
的result_of
。 -
对于 C++11,强制参数为
mpl::eval_if_c
和mpl::if_c
为bool
。 -
禁用'__forceinline 未内联'msvc 上的警告。
-
-
ScopeExit:
-
新功能
-
使用可变参数宏将捕获指定为逗号分隔的列表(但保留预处理器序列语法以实现向后兼容性)。
-
使用
this_
捕获作用域内的对象。 -
使用
void
支持空捕获。 -
在使用支持 C++11 lambda 函数的编译器上使用
BOOST_SCOPE_EXIT_ALL
的隐式 lambda 式捕获。
-
-
-
Thread:
-
新功能
-
#1850 请求 unlock_guard 以补充 lock_guard。
-
#2637 请求 shared_mutex 持续时间 timed_lock 和 timed_lock_shared。
-
#2741 关于管理可移植和不可移植线程属性的提案。
-
#3567 请求 shared_lock_guard。
-
#6194 适应 Boost.Move。
-
#6195 c++11 合规性:使用 Boost.Chrono 提供标准时间相关接口。
-
#6217 遵循 Howard Hinnant 提案增强 Boost.Thread 共享互斥锁接口。
-
#6224 c++11 合规性:在支持它们的编译器上添加标准 noexcept 的使用。
-
#6226 c++11 合规性:从锁添加显式 bool 转换。
-
#6228 遵循标准 c++11 的带分配器的添加 promise 构造函数。
-
#6230 c++11 合规性:遵循 c++11 中定义的异常报告机制。
-
#6266 重大更改:如果可连接,线程析构函数应调用 terminate。
-
#6269 重大更改:如果可连接,线程移动赋值应调用 terminate。
-
#6272 c++11 合规性:添加 thread::id 哈希特化。
-
#6273 c++11 合规性:添加 cv_status 枚举类并在条件等待函数上使用它。
-
#6231 在文档中添加 BasicLockable 要求以遵循 c++11。
-
#6342 c++11 合规性:使 one_flag 适应 c++11 接口。
-
#6671 upgrade_lock:缺少 mutex 和 release 函数。
-
#6672 upgrade_lock:: 缺少来自时间相关类型的构造函数。
-
#6675 upgrade_lock:: 缺少非成员 swap。
-
添加了缺少的 packaged_task::result_type 和带有分配器的 packaged_task:: 构造函数。
-
添加了 packaged_task::reset()
-
-
修复的 Bug
-
#2575 Bug- Itanium 平台上的 Boost 1.36.0。
-
#4345 thread::id 和线程级联的连接问题。
-
#4921 BOOST_THREAD_USE_DLL 和 BOOST_THREAD_USE_LIB 至关重要,需要记录在案。
-
#5013 文档:boost::thread: pthreas_exit 导致 terminate()。
-
#5173 boost::this_thread::get_id 非常慢。
-
#5351 中断 future get boost::unknown_exception。
-
#5516 当存在另一个读锁时,不会获取升级锁(如果之前的升级锁释放)。
-
#5990 shared_future<T>::get() 具有错误的返回类型。
-
#6174 packaged_task 未正确处理移动结果。
-
#6222 使用 SunStudio 的编译错误:unique_future move。
-
#6673 shared_lock:移动赋值不适用于 c++11。
-
#6674 shared_mutex:try_lock_upgrade_until 不起作用。
-
修复了在存在 task_object(task_object&&) 的情况下 ML 上使用 task_object(task_object const&) 发出的问题
-
-
测试的编译器
Boost 的主要测试编译器是
-
Linux
-
Intel: 11.1
-
LLVM Clang 2.8
-
GCC: 4.2.4, 4.3.4, 4.4.3, 4.5.3, 4.6.2
-
GCC,C++0x 模式: 4.3.4, 4.4.3, 4.5.3, 4.6.2
-
-
OS X
-
Intel: 11.1
-
GCC: 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.0, 4.4.7, 4.5.4, 4.6.3, 4.7.0
-
Boost 的其他测试编译器包括
-
Linux
-
来自 subversion 的 Clang
-
GCC: 4.2.4, 4.3.4, 4.4.4, 4.5.3, 4.6.2
-
GCC,C++0x 模式: 4.3.4, 4.4.4, 4.5.3, 4.6.2
-
pgCC: 11.9
-
Intel: 10.1, 11.1, 12.0, 12.1
-
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, 10.0
-
带有 STLport 的 Visual C++: 9.0
-
带有 STLport 的 Visual C++, Windows Mobile 5: 9.0
-
GCC, mingw: 4.4.0, 4.4.7, 4.5.2, 4.5.4, 4.6.4, 4.7.0
-
GCC,C++0x 模式, mingw: 4.5.2
-
-
AIX
-
IBM XL C/C++ Enterprise Edition, V12.1.0.0
-
-
FreeBSD
-
GCC 4.2.1, 32 位和 64 位
-
-
Solaris
-
Sun 5.10
-
致谢
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus 和 Marshall Clow 管理了此版本。