版本 1.59.0
版本 1.59.0
2015年8月13日 15:23 格林尼治标准时间
平台 | 文件 |
---|---|
unix | boost_1_59_0.tar.bz2 |
boost_1_59_0.tar.gz | |
windows | boost_1_59_0.7z |
boost_1_59_0.zip |
新的库
-
Convert: 来自 Vladimir Batov 的一个可扩展且可配置的类型转换框架。
-
Coroutine2: (C++14) 来自 Oliver Kowalke 的协程库。
更新的库
-
容器:
-
GitHub #26: 修复 stable_vector::capacity() 中的错误。感谢timsong-cpp/Arindam Mukerjee。
-
GitHub #27: 修复 stable_vector 的 index_of 的 Doxygen 注释。感谢 kariya-mitsuru。
-
-
融合:
-
为序列添加新的概念
Unbounded Sequence
和为迭代器添加新的概念Unbounded Iterator
。目前,Unbounded Sequence
影响fusion::(value_)at(_c)
和fusion::(value_)at_key
的行为。Unbounded Iterator
没有效果(为将来的版本保留)。更多详细信息,请参见无界序列和无界迭代器。( pull-request 85) -
为
fusion::list
添加对 C++11 可变参数模板的支持。( pull-request 84) -
已修复的错误
-
修复缺少包含
<utility>
。( #11161) -
修复由于缺少包含而导致的折叠编译错误。( #11249)
-
修复自适应空结构的编译错误,1.58.0 中的回归。( #11269)
-
删除对序列比较的过时(且不正确)的解决方法的使用,它影响 MSVC-8 和更早的版本。( pull-request 78)
-
修复复制从 fusion::list 派生的序列时的编译错误,1.58.0 中的回归。( pull-request 87)
-
修复复制 fusion::tuple 时的编译错误。( #11140)
-
为带有 constexpr 的 GCC 4.6 添加解决方法。( #11517)
-
-
-
几何:
-
附加功能
-
添加了 rtree const_iterator、begin()、end() 和对 Boost.Range 的支持。
-
在几何模型中支持 C++11
std::initializer_list
。 -
不相交和相交支持以下几何组合:多点/线串,多点/多线串。
-
添加了 relate() 和 relation() 算法。
-
已为点状和线性几何的组合实现交集
-
添加了 difference(pointlike, linear) 的实现
-
新的算法 is_empty,如果几何表示空集则返回 true
-
envelope 算法支持球面赤道坐标系中的点状和线性几何
-
envelope 算法支持地理坐标系中的点状几何
-
-
改进
-
将 rtree const_query_iterator 类别升级到 ForwardIterator。
-
多点周围缓冲区的缓冲区性能得到显著提高
-
-
重大更改
-
缓冲区侧策略现在返回 error_code 而不是 bool。如果您有自己的自定义侧策略,则应对其进行调整
-
-
错误修正
-
缓冲区:使用更强大的方法来计算交点的边,这修复了缓冲区生成中的几个错误
-
修复了从 IP 计算到的线段的选择,在两条线段的交点中。现在选择靠近线段点点的线段,或者选择最短线段上的线段。这避免了(很少发生)生成微小的三角形,使输出多边形无效
-
在重新缩放时四舍五入而不是截断到整数网格(此修复和前面提到的修复可能会对输出几何产生一些影响)
-
修复 detail::has_spikes 中潜在的无限循环(如果传递的点具有 NaN 坐标,则可能会发生循环)
-
-
-
进程间:
-
GitHub Pull #19 (“修复异常可见性”)。感谢 Romain-Geissler。
-
侵入式:
-
实现了map 和 multimap 类接口。
-
重构哈希表容器以减少模板实例化。
-
-
词法转换:
-
修复警告
-
简化元编程(感谢 Edward Diener)
-
-
日志:
-
一般更改
-
在支持符号可见性的系统(例如 Linux)上,库现在使用所有内部符号隐藏构建。
-
重大更改:该库已移植到 Boost.TypeIndex 用于其底层类型信息管理工具。这影响了以下公共接口
-
库抛出的
invalid_type
异常现在附加了typeindex::type_index
作为违规类型的描述。以前通过type_info_wrapper
标识类型。 -
Boost.Exception
type_info_info
错误信息现在包含typeindex::type_index
而不是type_info_wrapper
。 -
attribute_value::get_type()
现在返回typeindex::type_index
而不是type_info_wrapper
。用户定义的属性值实现也应进行类似更改(attribute_value::impl::get_type()
虚方法现在也返回typeindex::type_index
)。
-
-
type_info_wrapper
组件已弃用,将在未来的版本中删除。建议使用 Boost.TypeIndex 作为替代。 -
删除了以前已弃用的头文件:
boost/log/utility/intrusive_ref_counter.hpp
,boost/log/utility/explicit_operator_bool.hpp
,boost/log/utility/empty_deleter.hpp
。 -
添加了对为 OpenBSD 构建库的支持。( #11446)
-
改进了用于异步日志记录的事件同步原语的内部实现。( #11398)
-
-
错误修复
-
有关更多详细信息,请参见更改日志。
-
-
移动:
-
针对C++03编译器,修改了接受源值作为参数的
unique_ptr
转换构造函数,以允许从可转换的按值返回类型进行简单的转换。
-
-
预定义:
-
修复了
predef_check
功能的许多问题。 -
更新SunPro检测以适应Oracle最新的编译器版本。
-
在Boost Build端为
predef_check
表达式添加and
和or
逻辑运算符。 -
修复
BOOST_ARCH_PARISC
的拼写错误。 -
修复
MAKE_YYYYM
宏以正确限制月份。
-
-
程序选项:
-
修复了使用MSVC和MinGW时的编译错误、缺少dllexport以及警告 (Daniela Engert, Marcel Raad)。
-
修复了未初始化的字段 (Zoey Greer)。
-
阻止具有隐式值的选项消耗单独的标记 (Michael John Decker)。
-
将多标记限制设置为最大整数值,而不是32K (Hans Hohenfeld)。
-
代码格式和文档修复 (Jurko Gospodnetić, Lauri Nurmi)。
-
对无RTTI构建提供最小支持 (Minmin Gong)
-
不要将环境指针递增到结尾之外 (Vladimir Prus)
-
-
属性树:
-
一个新的JSON解析器,具有完整的Unicode支持。
-
重大更改:新的解析器不支持JSON文件中的注释或字符串连接。这些功能是旧解析器的非标准扩展,但它们的移除可能会破坏依赖它们的代码。
-
-
Boost.Test v3:
-
主要新功能
-
BOOST_TEST
通用断言 -
数据驱动的测试用例
-
测试单元现在可以具有属性,以便更精细地控制测试行为(逻辑分组、测试依赖性、测试启用/禁用)。
-
CLI学习了
colour_output
和list_content
,扩展了单元测试过滤(否定、标签)。 -
使用Quickbook重构和重写了文档。
-
-
已解决的问题
-
-
类型索引:
-
删除了对某些Boost库的依赖,以提高编译速度和模块化。
-
修复了测试中的警告并进行了其他维护改进。
-
已测试的编译器
Boost的主要测试编译器是:
-
Linux
-
Clang: 3.4
-
Clang, C++14: 3.6
-
GCC: 4.4.7, 4.8.2, 4.9.3
-
GCC, C++11: 4.4.7
-
GCC, C++14: 4.9.3
-
Intel: 15.0
-
-
Windows
-
Visual C++: 8.0, 9.0, 10.0, 11.0, 12.0, 14.0
-
-
Android
-
Clang: 3.6
-
GCC: 4.8, 4.9
-
-
SunOS
-
Sun: 6.0
-
-
QNX
-
QCC: 4.4.2
-
Boost的其他测试编译器包括:
-
Linux
-
Clang: 3.0, 3.1, 3.2, 3.3, 3.4
-
Clang, C++14: 3.6, 3.7
-
GCC: 4.4.7, 4.5.3, 4.6.4, 4.7.3, 4.8.1, 5.1.0, 6.0.0
-
GCC, C++11: 4.4.7
-
GCC, C++14: 4.9.3, 5.1.1
-
Intel: 15.0
-
-
Android
-
Clang: 3.6
-
GCC: 4.8, 4.9
-
-
FreeBSD
-
Clang: 3.4.1
-
GCC: 4.8.5, 5.1.0, 6.0.0
-
致谢
Beman Dawes,Eric Niebler,Rene Rivera,Daniel James,Vladimir Prus和Marshall Clow负责此次发布。