版本 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 贡献。 -
修复了 vector 和向后扩展能力分配器中的双重销毁错误。
-
修复了错误
-
GitHub #16:修复了不完整类型容器的迭代器。感谢 Mikael Persson。
-
-
Flyweight:
-
通过 Boost Serialization 添加了序列化支持。
-
flyweight
默认构造函数在 Boost 1.56 中变为显式,这在某些初始化场景中引入了回归。已恢复以前的非显式默认构造函数(ticket #10439)。
-
-
几何:
-
改进
-
在 rtree insert()、remove() 和 count() 函数中支持可转换为 value_type 的参数
-
-
Bugfixes
-
算法 buffer 中几个错误的修复
-
CCW 多边形的 point_on_surface() 中的错误 (extreme_points()) 和数值问题(感谢 Matt Amos)
-
通过用 point_on_border() 替换 point_on_surface() 修复了 A/A 的 disjoint() 中的错误(感谢 Matt Amos)
-
convex_hull() 的结果,在开放输出中重复 Point,对于 1 点和 2 点输入的点数太少
-
centroid() 中大坐标的精度不足,通过 Points 平移修复(与 ticket 10643 相关)
-
for_each_segment() 未考虑开放几何的最后一个段
-
-
-
进程间:
-
移除了
unique_ptr
,现在将 boost::interprocess::unique_ptr 转发到来自 Boost.Move 的通用boost::movelib::unique_ptr
类。此实现更接近标准std::unique_ptr
实现,并且维护得更好。 -
重新组织了 Doxygen 标记以获得更好的头文件参考。
-
-
Intrusive:
-
节点检查器的实验版本,由 Matei David 贡献。非常感谢!
-
实现了来自 C++14 的 N3644:Null Forward Iterators。
-
-
Iterator:
-
库的大多数组件已移至
boost::iterators
命名空间。为了向后兼容,这些组件也可以在boost
命名空间中访问。 -
现在根据迭代器类别有条件地定义迭代器运算符。
-
库的一些内部组件已公开(例如,
minimum_category
)。
-
-
Math:
-
添加了超指数分布。
-
修复了不完全伽玛函数中的一些虚假溢出(感谢 Rocco Romeo)。
-
修复了当 a = b = 0.5 时不完全贝塔函数的导数中的错误 - 这也影响了几个非中心分布,请参见 issue 10480。
-
修复了函数 round 中的一些边界情况。
-
如果标准库支持已损坏,则不要在 cstdfloat.hpp 中支持 80 位浮点数。
-
-
Move:
-
添加了
unique_ptr
智能指针。感谢 Howard Hinnant 提供的出色的 unique_ptr 模拟代码和测试套件。 -
添加了
move_if_noexcept
实用程序。感谢 Antony Polukhin 的实现。 -
MultiArray:
-
修复了 clang 的友元声明相关警告(感谢 Marcel Raad)。
-
-
Multiprecision:
-
更改了有理数到浮点数的转换,以精确舍入到最接近的值。
-
添加了改进的通用浮点数到有理数的转换。
-
修复了 cpp_bin_float 的指数函数中的罕见错误。
-
修复了各种小的文档问题。
-
-
Multi-index Containers:
-
当
std::tuple
可用时,这些可以用于配备复合键的索引中的查找操作。为了向后兼容,也支持boost::tuple
。
-
-
Preprocessor:
-
添加了 is_begin_parens 和 remove_parens。
-
添加了元组功能以并行所有数组功能。
-
修复了 VC++ 空元组数据的问题。
-
更新了内部 is_empty 以在使用可变参数宏时使用更优越的可变参数版本。
-
更新了 clang 以使其具有与 gcc 相同的可变参数支持。
-
更新了新功能的文档。
-
-
Thread:
-
修复的错误
-
#6782 call_once 在 Visual Studio 上使用不正确的 barrier intrinsic
-
#6787 如果系统时间回滚,boost::thread::sleep() 会挂起
-
#7665 this_thread::sleep_for 不再在 thread 中使用 steady_clock
-
#9307 future::fallback_to 断言,错误信息为 ERRORRRRR boost: mutex lock failed in pthread_mutex_lock: Invalid argument
-
#9308 使用 lambda 调用 future::async 时,terminate called throwing an exception 失败 - clang-darwin-asan11
-
#9310 test_4648_lib 在 clang-darwin-asan11 上失败
-
#9425 Boost promise & future 未对值存储使用提供的分配器
-
#9558 future continuations 单元测试在 Mac 10.7/32-bit/x86/darwin-4.2.1 上的 get()/pthread_cond_wait() 中挂起
-
#9787 [windows] 传递给 basic_timed_mutex::try_lock_until 和 condition_variable::wait_until 的小 duration 值可能导致 win32 无限或接近无限的等待
-
#9880 [windows] 如果系统时间 < 1970,boost::condition_variable.timed_wait() 异常
-
#10159 GCC 4.4 错误 sorry, unimplemented
-
#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 中的 deferred future。
-
#10427 考虑 when_any 中的 deferred 和 ready future。
-
#10428 适应 Boost.Move 中新的 unique_ptr 接口
-
#10465 当结果是元组时,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> 单位:比特、字节、nat、hartley 和 shannon,
-
为二进制前缀 kibi、mebi、gibi、tebi、pebi、zebi 和 yobi IEC 前缀添加比例单位
-
修复了 msvc-14 上 NaN 的输出
-
添加了对 C++11 numeric_limits::max_digits10 和 ::lowest 的支持
-
警告修复
-
-
Utility:
-
重做了采用 distance 参数的
next()
和prior()
函数。当 distance 是无符号数或两个参数都是整数时,代码现在可以正确工作。新代码依赖于第一个参数支持的运算符来选择正确的实现。
-
-
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 管理了此版本。