版本 1.57.0
版本 1.57.0
2014年11月3日 21:55 GMT
平台 | 文件 |
---|---|
unix | boost_1_57_0.tar.bz2 |
boost_1_57_0.tar.gz | |
windows | boost_1_57_0.7z |
boost_1_57_0.zip |
更新的库
-
Asio:
-
配置:
-
添加了
BOOST_HAS_PRAGMA_DETECT_MISMATCH
宏
-
-
容器:
-
增加了对
initializer_list
的支持。由 Robert Matusewicz 贡献。 -
修复了向量和向后扩展能力分配器中的双重销毁错误。
-
修复了错误
-
GitHub #16: 修复不完整类型容器的迭代器。感谢 Mikael Persson。
-
-
几何:
-
改进
-
支持可转换为 rtree insert()、remove() 和 count() 函数中 value_type 的参数
-
-
错误修复
-
算法缓冲区中几个错误的修复
-
CCW 多边形的 point_on_surface() 中的错误 (extreme_points()) 和数值问题(感谢 Matt Amos)
-
通过将 point_on_surface() 替换为 point_on_border() 修复的 A/A 不相交中的错误(感谢 Matt Amos)
-
convex_hull() 的结果,打开输出中的重复点,1 点和 2 点输入的点数太少
-
centroid() 中大坐标的不精确,通过点转换修复(与票证 10643 相关)
-
for_each_segment() 未考虑打开几何图形的最后一段
-
-
-
进程间:
-
删除了
unique_ptr
,现在将 boost::interprocess::unique_ptr 转发到来自 Boost.Move 的通用boost::movelib::unique_ptr
类。此实现更接近标准std::unique_ptr
实现,并且维护得更好。 -
重新组织了 Doxygen 标记以获得更好的标题参考。
-
-
侵入式:
-
节点检查器的实验版本,由 Matei David 贡献。非常感谢!
-
实现了来自 C++14 的 N3644:空前向迭代器。
-
-
迭代器:
-
该库的大部分组件都移动到了
boost::iterators
命名空间中。为了向后兼容,这些组件也可以在boost
命名空间中访问。 -
迭代器运算符现在根据迭代器类别有条件地定义。
-
该库的一些内部组件已公开(例如,
minimum_category
)。
-
-
数学:
-
添加了超指数分布。
-
修复了不完全伽玛函数中的一些虚假溢出(感谢 Rocco Romeo)。
-
修复了当 a = b = 0.5 时不完全贝塔导数中的错误 - 这也影响了几个非中心分布,请参见问题 10480。
-
修复了函数 round 中的一些边界情况。
-
如果标准库支持已损坏,则不支持 cstdfloat.hpp 中的 80 位浮点数。
-
-
移动:
-
添加了
unique_ptr
智能指针。感谢 Howard Hinnant 提供的出色的 unique_ptr 模拟代码和测试套件。 -
添加了
move_if_noexcept
实用程序。感谢 Antony Polukhin 的实现。 -
多维数组:
-
修复了 clang 的 friend 声明相关的警告(感谢 Marcel Raad)。
-
-
多精度:
-
将有理数转换为浮点数以精确舍入到最接近的值。
-
添加了改进的通用浮点数到有理数转换。
-
修复了 cpp_bin_float 的指数函数中的罕见错误。
-
修复了各种小的文档问题。
-
-
多索引容器:
-
当
std::tuple
可用时,这些可用于配备复合键的索引中的查找操作。为了向后兼容,也支持boost::tuple
。
-
-
预处理器:
-
添加了 is_begin_parens 和 remove_parens。
-
添加了与所有数组功能平行的元组功能。
-
修复了 VC++ 中带有空元组数据的问题。
-
更新了内部 is_empty 以在支持可变宏时使用更优越的可变版本。
-
更新了 clang 以具有与 gcc 相同的可变支持。
-
更新了新功能的文档。
-
-
线程:
-
修复的错误
-
#6782 call_once 在 Visual Studio 上使用不正确的屏障内在函数
-
#6787 如果系统时间回滚,boost::thread::sleep() 会挂起
-
#7665 this_thread::sleep_for 不再在线程中使用 steady_clock
-
#9307 future::fallback_to 断言,错误:pthread_mutex_lock 中 mutex 锁失败:无效参数
-
#9308 当使用 lambda 调用时,future::async 失败,terminate 被调用,抛出异常 - clang-darwin-asan11
-
#9310 test_4648_lib 在 clang-darwin-asan11 上失败
-
#9425 Boost promise & future 不使用提供的分配器进行值存储
-
#9558 future 延续单元测试在 Mac 10.7/32 位/x86/darwin-4.2.1 上的 get()/pthread_cond_wait() 中挂起
-
#9787 [windows] 传递给 basic_timed_mutex::try_lock_until 和 condition_variable::wait_until 的小持续时间值会导致 win32 无限或接近无限的等待
-
#9880 [windows] 如果系统时间早于 1970 年,boost::condition_variable.timed_wait() 会抛出异常
-
#10159 GCC 4.4 错误:抱歉,未实现
-
#10196 thread_specific_ptr 不支持 void*
-
#10296 Boost.Thread 1.56 rc1 在 Mingw 上无法编译
-
#10297 Boost.Thread 1.56 rc1 在 armhf 上使用 clang 构建时挂起
-
#10340 C++03 模式下不存在 boost::promise<T>::set_value(const T&) 重载
-
#10425 when_all/when_any 缺少文档。
-
#10426 考虑 when_all 中的延迟 future。
-
#10427 考虑 when_any 中的延迟和就绪 future。
-
#10428 适配 Boost.Move 中的新 unique_ptr 接口
-
#10465 当结果为 tuple 时,缺少 when_all/when_any 的实现。
-
#10476 使用 BOOST_THREAD_MOVABLE_ONLY<T> 的类不满足 is_copy_constructible<T>::value == false
-
#10478 boost/thread/future.hpp 中的数据竞争
-
#10529 pthread/condition_variable_any 构造函数为 pthread_cond_init 报告了不正确的错误代码
-
#10563 shared_future<R>::then 应该是 const
-
-
TypeTraits:
-
添加了新的 trait is_copy_assignable 和 is_final。
-
-
Units:
-
新的单位系统 <boost/units/systems/information.hpp> 单位:比特、字节、纳特、哈特利和香农
-
为二进制前缀 kibi、mebi、gibi、tebi、pebi、zebi 和 yobi IEC 前缀添加了比例单位
-
修复了 msvc-14 上 NaN 的输出
-
添加了对 C++11 numeric_limits::max_digits10 和 ::lowest 的支持
-
修复了警告
-
-
Utility:
-
重新设计了接受距离参数的
next()
和prior()
函数。现在,当距离是无符号数或两个参数都是整数时,代码可以正常工作。新代码依赖于第一个参数支持的运算符来选择正确的实现。
-
-
uBLAS:
-
添加了两种新类型:matrix_row 和 matrix_column facade。有了它们,就可以将矩阵分别作为行数组和列数组访问。
-
添加了 fixed_vector/fixed_matrix 类来表示小型固定大小的容器。由于使用了 std::array,因此需要 c++11
-
修复了长期存在的带状矩阵错误 (https://svn.boost.org/trac/boost/ticket/7549)。
-
矩阵和向量的接口已使用 cbegin、cend、crbegin 和 crend 成员函数进行了扩展,如 c++11 中定义的那样。
-
删除了 doxygen 文档以使发行版更轻
-
删除了 MSVC 中未使用的参数的警告
-
更改了 uBlas 开发文件夹结构(不会影响库的用户)
-
针对各种编译器上的警告和错误进行了大规模的修改。除了一些难以解决的警告和旧的编译器不兼容性外,现在使用 uBlas 进行编译会更加清晰。
-
测试的编译器
Boost 的主要测试编译器是
-
Linux
-
Clang: 3.0, 3.1, 3.2, 3.3, 3.4
-
Clang, C++14: 3.5
-
GCC: 4.4.7, 4.5.3, 4.6.4, 4.7.3, 4.8.1, 4.8.2
-
GCC, C++98: 4.9.1
-
GCC, C++11: 4.4.7, 4.8.2, 4.8.3, 4.9.1
-
GCC, C++14: 4.9.1
-
Intel: 13.1, 14.0
-
Intel, C++11: 13.1, 14.0
-
QCC: 4.4.2
-
-
OS X
-
Apple Clang: 6.0
-
Apple Clang, C++11: 6.0
-
Apple Clang, C++14: 6.0
-
GCC: 4.2.1, 4.9.1
-
Intel: 12.0
-
-
Windows
-
GCC, mingw: 4.4.0, 4.4.7. 4.5.4, 4.6.3, 4.7.2, 4.7.3, 4.8.0, 4.8.2, 4.9.0
-
Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0
-
-
FreeBSD
-
GCC: 4.2.1
-
-
QNX
-
QCC: 4.4.2
-
Boost 的其他测试编译器包括
-
Linux
-
Clang: 3.0, 3.1, 3.2, 3.3, 3.4.2
-
Clang, C++14: 3.5.0, trunk
-
GCC: 4.4.7, 4.6.4, 4.7.3, 4.8.1, 4.8.2, 5.0 (实验性)
-
GCC, C++11: 4.4.7, 4.8.2, 4.8.3, 4.9.1
-
GCC, C++14: 4.9.1
-
Intel: 11.1, 12.1, 13.0, 13.1, 14.0
-
Intel, C++11: 13.1, 14.0
-
-
OS X
-
Apple Clang: 6.0
-
Apple Clang, C++11: 6.0
-
Apple Clang, C++14: 6.0
-
Clang: trunk
-
Clang, C++11: trunk
-
GCC: 4.2.1, 4.9.1
-
Intel: 12.0
-
-
Windows
-
GCC, mingw: 4.4.0, 4.4.7, 4.5.4, 4.6.3, 4.7.3, 4.8.0, 4.8.2, 4.9.0
-
Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0
-
-
FreeBSD
-
GCC: 4.2.1
-
-
QNX
-
QCC: 4.4.2
-
鸣谢
Beman Dawes, Eric Niebler, Rene Rivera, Daniel James, Vladimir Prus 和 Marshall Clow 管理了此版本。