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...)。
    • 新的默认哈希函数
      • 直接处理标量类型(如果标量类型与 key_of_value 一起使用),使用简单的哈希(类似于 boost::hash)。
      • 对于其他类型(大多数 Boost.Intrusive 用户都在这里),使用基于 ADL 的 hash_function 调用,就像 boost::hash 一样。
      • 如果 ADL 查找失败,则前向声明 boost::hash 并通过该类型的对象调用。如果用户在包含 Boost.Intrusive 之前或之后包含了 boost/container_hash/hash.hpp,则将正确调用 boost::hash
    • 一些 Boost.Intrusive 用户可能在使用 Boost.ContainerHash 的函数/特性,而没有包含所需的 boost/container_hash/hash.hpp 头文件,因为它通过 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 破坏性更改:哈希容器的 end 迭代器被实现为指向 bucket 数组末尾之后的位置(请参阅 #8698),当要插入的值分配在 bucket 数组旁边时,会导致严重的错误。end 迭代器实现已更改为指向 bucket 数组的开头。
  • 大型重构,以减少模板和调试符号膨胀。在 MSVC 编译器中,Debug 模式下的测试目标文件已减少一半。没有 Identical COMDAT Folding (ICF) 的工具链应该会注意到大小的改进。
  • 实现了 SCARY 迭代器
  • 添加了 BOOST_NO_EXCEPTIONS 支持(错误 #7849)。
  • 修复了错误 #7174, #7529, #7815
  • 修复了 GCC -Wshadow 警告。
  • 在几个侵入式容器构造函数中添加了缺少的 explicit 关键字。
  • 将已弃用的 BOOST_NO_XXXX 替换为较新的 BOOST_NO_CXX11_XXX 宏。
  • 小的文档修复。
  • bstree_algorithms.hpp 和 avl_tree_algorithms.hpp 中的代码清理
  • 修复了错误 #3164
  • 新的基于 treap 的容器:treap、treap_set、treap_multiset。
  • 修正了基于 Windows 的 64 位编译器的编译错误。
  • 修正了容器构造函数中的异常安全错误。
  • 更新了文档以显示右值引用函数而不是模拟函数。
  • Intrusive 现在利用了具有可变参数模板的编译器。
  • clone_from 函数现在复制关联容器的谓词和哈希函数。
  • 通过 incremental<> 选项为无序容器添加了增量哈希。
  • 在容器中更新了一些函数参数,从 iterator 更新为 const_iterator,以跟上下一个标准的草案。
  • 添加了一个选项,用于为侵入式可配置断言宏指定包含文件。
  • 为单链列表添加了 linear<>cache_last<> 选项。
  • 为无序容器 hooks 添加了 optimize_multikey<> 选项。
  • 当在 hook 中使用 store_hash 选项时,优化了无序容器。
  • 实现已更改为异常不可知,因此可以在没有异常的环境中使用。
  • 为基于树的容器添加了 container_from_iterator 函数。

PrevUpHomeNext