版本 1.59.0
版本 1.59.0
2015年8月13日 15:23 GMT
平台 | 文件 |
---|---|
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 的协程库。
更新的库
-
Container:
-
GitHub #26: 修复 stable_vector::capacity() 中的错误。感谢 timsong-cpp/Arindam Mukerjee。
-
GitHub #27: 修复 stable_vector 的 index_of 的 doxygen 注释。感谢 kariya-mitsuru。
-
-
Fusion:
-
为序列添加一个新概念,
Unbounded Sequence
,为迭代器添加Unbounded Iterator
。目前,Unbounded Sequence
影响fusion::(value_)at(_c)
和fusion::(value_)at_key
的行为。Unbounded Iterator
没有效果(为未来版本保留)。有关更多详细信息,请参阅 Unbounded Sequence 和 Unbounded Iterator。(pull-request 85) -
支持 C++11 可变参数模板用于
fusion::list
。(pull-request 84) -
修复的错误
-
修复缺少包含
<utility>
。(#11161) -
修复由于缺少包含而导致的 fold 编译错误。(#11249)
-
修复由于适应空结构而导致的编译错误,1.58.0 中的回归。(#11269)
-
删除对序列比较的过时(且不正确)的解决方法,它影响 MSVC-8 及更早版本。(pull-request 78)
-
修复复制从 fusion::list 派生的序列时出现的编译错误,1.58.0 中的回归。(pull-request 87)
-
修复复制 fusion::tuple 时出现的编译错误。(#11140)
-
为 GCC 4.6 添加使用 constexpr 的解决方法。(#11517)
-
-
-
Geometry:
-
附加功能
-
添加了 rtree const_iterator、begin()、end() 以及对 Boost.Range 的支持。
-
在几何模型中支持 C++11
std::initializer_list
。 -
Disjoint 和 intersects 支持以下几何组合:multipoint/linestring、multipoint/multilinestring。
-
添加了 relate() 和 relation() 算法。
-
已为点状和线性几何图形的组合实现 Intersection
-
为 difference(pointlike, linear) 添加了实现
-
新算法 is_empty,如果几何图形表示空集,则返回 true
-
envelope 算法支持球面赤道坐标系中的点状和线性几何图形
-
envelope 算法支持地理坐标系中的点状几何图形
-
-
改进
-
将 rtree const_query_iterator 类别升级到 ForwardIterator。
-
显着提高了多点周围缓冲区的缓冲区性能
-
-
重大更改
-
buffer side 策略现在返回 error_code 而不是 bool。如果您有自己的自定义 side 策略,则应进行调整
-
-
错误修复
-
Buffer:使用更强大的方法来计算交点的侧面,这修复了缓冲区生成中的几个错误
-
修复了从 IP 计算的段的选择,在两个段的交点中。现在选择最接近段点点的段,或者选择最短段上的段。这避免了(很少发生)生成微小三角形导致输出多边形无效
-
在重新缩放中,舍入而不是截断为整数网格(此修复和前面提到的修复可能会对输出几何图形产生一些影响)
-
修复 detail::has_spikes 中潜在的无限循环(如果传递的点具有 NaN 坐标,则可能发生循环)
-
-
-
Intrusive:
-
实现了 类似 map 和 multimap 的接口。
-
重构了哈希表容器以减少模板实例化。
-
-
Lexical Cast:
-
修复的警告
-
简化的元编程(感谢 Edward Diener)
-
-
Log:
-
一般更改
-
在具有 符号可见性 支持的系统(例如 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)
-
-
错误修复
-
有关更多详细信息,请参阅 changelog。
-
-
Move:
-
更改了 C++03 编译器中采用按值源的
unique_ptr
的转换构造函数,以允许从按值返回的可转换类型进行简单转换。
-
-
Multi-index Containers:
-
添加了 ranked indices。
-
维护修复。
-
-
Predef:
-
修复了
predef_check
功能的许多问题。 -
更新了 SunPro 检测以适应来自 Oracle 的最新版本的编译器。
-
为 Boost Build 端的
predef_check
表达式添加了and
和or
逻辑运算符。 -
修复了
BOOST_ARCH_PARISC
以正确拼写名称。 -
修复了
MAKE_YYYYM
宏以正确限制月份。
-
-
Program Options:
-
修复了 MSVC 和 MinGW 的编译错误、缺少 dllexport 和警告 (Daniela Engert, Marcel Raad)。
-
修复了未初始化的字段 (Zoey Greer)。
-
阻止具有隐式值的选项使用单独的令牌 (Michael John Decker)。
-
使多令牌限制为最大整数,而不是 32K (Hans Hohenfeld)。
-
代码格式和文档修复 (Jurko Gospodnetić, Lauri Nurmi)。
-
对无 rtti 构建的最小支持 (Minmin Gong)
-
不要将环境变量指针递增到末尾之外 (Vladimir Prus)
-
-
Property Tree:
-
具有完整 Unicode 支持的新 JSON 解析器。
-
重大更改: 新解析器不支持 JSON 文件中的注释或字符串连接。这些功能是旧解析器的非标准扩展,但删除它们可能会破坏依赖于它们的代码。
-
-
Boost.Test v3:
-
主要新功能
-
BOOST_TEST
通用断言 -
数据驱动的测试用例
-
测试单元现在可以具有属性,以便更精细地控制测试行为(逻辑分组、测试依赖性、测试启用/禁用)
-
CLI 学习了
colour_output
和list_content
,扩展了单元测试过滤(否定、标签) -
使用 quickbook 重构和重写了文档
-
-
已解决的问题
-
-
TypeIndex:
-
删除了对某些 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 管理了此版本。