Boost C++ 库

...世界上最受尊敬和专家设计的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu, C++ 编码标准

PrevUpHomeNext

发行说明

Boost 1.86 版本
Boost 1.85 版本
Boost 1.82 版本
Boost 1.81 版本
Boost 1.80 版本
Boost 1.79 版本
Boost 1.77 版本
Boost 1.76 版本
Boost 1.75 版本
Boost 1.73 版本
Boost 1.71 版本
Boost 1.70 版本
Boost 1.67 版本
Boost 1.65 版本
Boost 1.64 版本
Boost 1.63 版本
Boost 1.62 版本
Boost 1.61 版本
Boost 1.60 版本
Boost 1.59 版本
Boost 1.58 版本
Boost 1.57 版本
Boost 1.56 版本
Boost 1.55 版本
Boost 1.54 版本
Boost 1.53 版本
Boost 1.51 版本
Boost 1.49 版本
Boost 1.48 版本
Boost 1.46 版本
Boost 1.45 版本
Boost 1.40 版本
Boost 1.39 版本
Boost 1.38 版本
Boost 1.37 版本
Boost 1.36 版本
  • 修复的错误
  • 可能破坏兼容性:无序容器现在默认使用内部与 boost::hash 协议兼容的内部哈希函数。
    • 原因
      • 自 Boost 1.84 起,Boost.ContainerHash 需要 C++11,这会破坏 Boost.Intrusive 的 C++03 用户。
      • 为了避免头文件包含对 Boost.ContainerHash 的依赖,后者间接地也引入了其他库(Boost.Describe、Boost.Mp11...)。
    • 新的默认哈希函数
      • 使用简单的哈希值(类似于 boost::hash)直接处理标量类型(如果标量类型与 key_of_value 一起使用)。
      • 对于其他类型(大多数 Boost.Intrusive 用户都在这里),使用基于 ADL 的 hash_function 调用,就像 boost::hash 一样。
      • 如果 ADL 查找失败,则前向声明 boost::hash 并通过该类型的对象进行调用。如果用户在包含 Boost.Intrusive 之前或之后包含了 boost/container_hash/hash.hpp,则将正确调用 boost::hash
    • 有些 Boost.Intrusive 用户可能在没有包含所需的 boost/container_hash/hash.hpp 头文件的情况下使用了 Boost.ContainerHash 函数/特性,因为它通过 Boost.Intrusive 间接包含。这些用户需要显式包含 boost/container_hash/hash.hpp 才能获得 Boost.ContainerHash 特性。
  • Boost.Intrusive 不再依赖于 Boost.StaticCast。
  • 重写了半侵入式哈希容器,以减少编译时间并提高运行时性能。
  • 减少编译时依赖性
    • linear_slist_algorithms 在返回时使用简单的 node_ptr 而不是 std::pair。
    • list/slist 使用 operator </operator == 而不是 std::equal_to/std::less
  • 修复的错误
  • **源码破坏**:弃用了 splay 容器中的 xxx_dont_splay 函数。弃用了 splay 容器中的 splay_set_base_hooksplay_set_member_hook,请改用 bs_set_base_hookbs_set_member_hook。这两者都将在 Boost 1.56 中删除。
  • **ABI 破坏**:哈希容器的结束迭代器被实现为指向桶数组末尾之后的一个位置(参见 #8698),当要插入的值被分配在桶数组旁边时,会导致严重的错误。结束迭代器实现已更改为指向桶数组的开头。
  • 为了减少模板和调试符号膨胀,进行了大量的重构。在 MSVC 编译器的调试模式下,测试目标文件已减少到一半。没有相同 COMDAT 折叠 (ICF) 的工具链应该会注意到大小的改进。
  • 实现了 SCARY 迭代器
  • 添加了 BOOST_NO_EXCEPTIONS 支持(错误 #7849)。
  • 修复了错误 #7174#7529#7815
  • 修复了 GCC -Wshadow 警告。
  • 在几个 intrusive 容器构造函数中添加了缺失的 explicit 关键字。
  • 将弃用的 BOOST_NO_XXXX 替换为较新的 BOOST_NO_CXX11_XXX 宏。
  • 小的文档修复。
  • 清理了 bstree_algorithms.hpp 和 avl_tree_algorithms.hpp 中的代码
  • 修复了错误 #3164
  • 优化了 list::mergeslist::merge
  • list::sortslist::sort 现在是稳定的。
  • 修复了错误 #2689#2755#2786#2807#2810#2862
  • 新的基于 treap 的容器:treap、treap_set、treap_multiset。
  • 更正了基于 Windows 的 64 位编译器的编译错误。
  • 更正了容器构造函数中的异常安全错误。
  • 更新了文档以显示右值引用函数而不是模拟函数。
  • Intrusive 现在利用具有可变参数模板的编译器。
  • clone_from 函数现在复制关联容器的谓词和哈希函数。
  • 通过 incremental<> 选项向无序容器添加了增量哈希。
  • 在容器中将一些函数参数从 iterator 更新为 const_iterator 以跟上下一个标准的草案。
  • 添加了一个选项,用于为侵入式可配置断言宏指定包含文件。
  • 为单链表添加了 linear<>cache_last<> 选项。
  • 为无序容器钩子添加了 optimize_multikey<> 选项。
  • 当钩子中使用 store_hash 选项时,优化了无序容器。
  • 实现已更改为与异常无关,以便可以在没有异常的环境中使用。
  • 为基于树的容器添加了 container_from_iterator 函数。

PrevUpHomeNext