版本 1.61.0
2016年5月13日 02:58 GMT
文档
校验和列表 由 Vladimir Prus 签名
第三方下载
新库
- Compute:
- DLL:
- 用于方便地处理共享库和动态加载库的库。该库提供了一种跨平台的可移植方式来:加载库、导入任何本地函数和变量、为 C++ 符号修饰的函数和符号创建别名、查询库的节和导出的符号、自加载和自查询、通过导出的符号获取程序和模块位置。
- Hana:
- 一个现代 C++ 元编程库。它提供了操作异构序列的高级算法,允许以自然语法编写类型级计算,提供了内省用户定义类型的工具等等。
- Metaparse:
- 一个用于在 C++ 编译过程中解析嵌入式 DSL 代码的编译时解析器生成库。该库与 Spirit 类似,但 Spirit 构建的解析器在运行时解析,而该库构建的解析器在编译时解析。
更新的库
-
Any:
-
Container:
-
small_vector 支持更多构造函数和赋值操作。
- 修复的错误
-
Context:
-
#11246 因未定义符号而无法为 mingw 构建
-
#11365 使用 VS2015RC 构建时 execution_context.hpp 出现错误
-
#11652 检查 __cpp_lib_integer_sequence
-
#11946 在 x86_64/MinGW 上崩溃
- fcontext_t:不再是公共 API 的一部分
- 已删除 WinFiber API 支持
- execution_context:放宽至 C++11
- execution_context:类型安全的上下文数据传输
- execution_context:在栈顶执行函数
- execution_context:性能改进
- execution_context:已移除静态成员函数
current()
- execution_context:新的调用语义
-
Coroutine:
-
Coroutine2:
- 与 FPU 环境相关的属性已移除
- 性能改进
- 放宽至 C++11
-
Fusion:
-
几何:
-
附加功能
- 在球形和地理坐标系中对 Box/Box 的 `within` 和 `covered_by` 提供支持。
-
改进
- Overlay:`handle_tangencies` 被 `clusters` 替换,解决了许多具有共线转弯的情况。
-
已解决的工单
-
#9162 非笛卡尔 Point/Areal 的关系运算结果无效。
-
#10866 `union_` 在 1.56 和 1.57 版本中不起作用。
-
#11018 几何相交结果错误
-
#11576 相交结果错误。
-
#11637 未使用的参数警告。
-
#11725 `union_` 未能创建孔洞
-
#11789 球面赤道坐标系的关系运算断言失败或结果无效。
-
#11917 Andoyer 距离策略对对跖点返回 0(默认地理距离)。
-
#11928 Surveyor 面积策略的精度改进。
-
#11966 box 和非整数坐标类型在 svg() 中出现编译错误。
-
#11984 `union_()` 生成自相交多边形
-
#11987
rtree::remove() 对于地理坐标系无法编译。
-
#12000 `relate` 的 `mask_handler`(未使用)构造函数中存在未初始化的引用。
-
#12106 对于非笛卡尔短段,`envelope()` 中断言失败无效。
-
错误修复
- 修复笛卡尔坐标系中 Segment/Box 的 `intersects` 和 `disjoint`,当 Segment 平行于 Box 的面时。
- 修复球形和地理坐标系中 Point/Areal 的关系运算在边缘情况下的问题。
- 修复球形和地理坐标系中 Point/Box 和 Box/Box 的 `intersects` 和 `disjoint` 在某些情况下的问题。
- 修复球形和地理坐标系中 Point/Box 的 `within` 和 `covered_by` 在某些情况下的问题。
-
Interprocess:
-
Intrusive:
-
Lexical Cast:
-
Log:
- 一般性更改
- 对
boost::basic_string_ref 及其特化版本的支持已被弃用;建议用户切换到 boost::basic_string_view。对 boost::basic_string_ref 的支持将在未来版本中移除。
- 添加了对限制文件收集器目标目录中存储的日志文件数量的支持。感谢 Erich Keane 提供的补丁。(#8746)
- 错误修复
- 修复了 Windows CE 的各种编译问题。
- 修复了 Solaris 上的编译问题。
- 添加了对 MSVC-10 在某些情况下生成损坏代码的格式化器的变通方法。(#12025)
- 有关更多详细信息,请参阅 更改日志。
-
数学:
-
Move:
- 实验性:渐进最优的无缓冲合并和排序算法:adaptive_merge 和 adaptive_sort。
- 修复 bug
-
Multiprecision:
- 修复了整数类型的流输入 bug,参见 #11857。
- 修复了涉及表达式模板的一些歧义转换,参见 #11922。
- 添加了表达式模板感知的 min/max 重载,参见 #11149。
- 修复了 cpp_int 中右移负小整数的 bug,参见 #11999。
- 在可能的情况下,为 cpp_int 中的位移操作使用 memmove,参见 #9233。
- 在可能的情况下,为 cpp_int 中的数据导入使用 memcpy,参见 #9235。
- 将
cpp_bin_float.convert_to<double>() 更改为函数模板,而不是通过 long double 进行转换,以避免双舍入错误,参见 #12039。
- 修复了从 NaN 和无穷大的转换,参见 #12112。
- 为 Clang 在 Windows 上的支持进行了改进。
- 修复了 cpp_dec_float 和 cpp_bin_float 中 NaN 和无穷大的基本算术处理,参见 #12090。
- 修复了 cpp_bin_float 减法中的栅栏柱错误。
- 修复了 cpp_bin_float 的转换到 float 例程中的双舍入问题,参见 #12039。
- 使 float128 能够识别 denorm,参见 #12075。
- 允许库和测试在没有异常处理支持的情况下使用,参见 #12070。
- 修复了 boost::rational 的有 bug 的比较运算符重载。
- 为 Oracle C++ 添加了一些变通方法。
- 修复了 cpp_int 的 limb_type 比 unsigned 更宽时的一些缺失类型转换。
-
Optional:
- 现在
boost::optional 为引用参数进行了特化。这解决了几个问题:
- optional 引用的 `sizeof` 是指针的大小;
- 一些与复制 optional 引用相关的 bug 已被修复;
- 在某些编译器上由不正确的引用绑定引起的所有运行时 bug 现在都变成了编译时错误;
- 你可以交换 optional 引用:这类似于交换指针:浅层交换,底层对象不受影响;
- 抽象类型的 optional 引用也能正常工作。
- 已记录嵌套的 typedefs(Trac #5193)。
- 使完美转发构造函数对 SFINAE 友好,这修复了 Trac #12002。然而,这只在正确实现 C++11
<type_traits> 的较新平台上有效。
- 修复了 Trac #10445。
-
Regex:
-
Test:
- Boost.test v3.2,详情请参见“变更日志”部分。
- 新功能
- 数据集驱动的测试用例学会支持 fixture 和可变数量的参数。
- 数据集驱动的测试用例样本类型现在会考虑移动语义。
- 错误修复
-
Variant:
测试的编译器
Boost 的主要测试编译器是:
- Linux
- Clang: 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7.1
- Clang, C++14: 3.7.1, 3.8.0
- GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.3, 4.8.4, 4.8.5, 4.9.3, 5.3.0
- GCC, C++11: 4.4.7
- GCC, C++14: 5.2.1, 5.3.1
- Intel: 16.0
- Windows
- GCC, C++03, mingw: 3.4.5
- GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
- GCC, C++14, mingw: 4.9.3, 5.1, 5.2
- Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
- Android
- Clang: 3.6, 3.7
- GCC: 4.9, 5.3
- FreeBSD
- Clang: 3.4.1, 3.7
- GCC: 4.8.5, 5.3
- Haiku
- QNX
- SunOS
- Oracle Solaris Studio: 12.4, 12.5
- Oracle Solaris Studio, C++11: 12.5
Boost 的其他测试编译器包括:
- Linux
- Clang: 3.0, 3.1, 3.2, 3.3, 3.4, 3.5, 3.6, 3.7.1
- Clang, c++14: 3.7.1, 3.8.0
- GCC: 4.4.7, 4.5.3, 4.6.3, 4.7.3, 4.8.5, 4.9.3, 5.3.0, 5.3.1, 6.0.0
- GCC, C++11: 4.4.7
- GCC, C++14: 5.2.1
- Intel: 16.0
- OS X
- Apple Clang: 7.0.2
- G++: 5.3.0
- Windows
- GCC, C++03, mingw: 3.4.5
- GCC, C++11, mingw: 4.6.4, 4.7.3, 4.8.1
- GCC, C++14, mingw: 4.9.3, 5.1, 5.2
- GCC, cygwin: 5.3.0
- Visual C++: 7.1, 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
- Android
- Clang: 3.6, 3.7
- GCC: 4.9, 5.3, 6.0
- FreeBSD
- Clang: 3.41, 3.7.0
- GCC, C++11: 4.8.5, 5.3.0, 6.0
- GCC: 6.0
- Haiku
- QNX
- SunOS
- Oracle Solaris Studio: 12.4, 12.5
- Oracle Solaris Studio, C++11: 12.5
致谢
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus 和 Marshall Clow 管理了此次发布。