Chinese (Simplified Han script) (Boost Unordered - en to zh_Hans translation catalogue (300 entries)

en: = Change Log
zh_Hans: = 变更日志

en: Release 1.89.0
zh_Hans: 版本 1.89.0

en: Deprecated `boost::unordered::hash_is_avalanching` is now a using-declaration of
zh_Hans: 已弃用的 boost::unordered::hash_is_avalanching 现在是

en: `boost::hash_is_avalanching` in `<boost/container_hash/hash_is_avalanching.hpp>`. Use that header directly instead. `<boost/unordered/hash_traits.hpp>` will be removed in the future.
zh_Hans: 在 <boost container_hash="" hash_is_avalanching.hpp=""> 中对 boost::hash_is_avalanching 的使用声明。请直接使用该头文件代替。<boost unordered="" hash_traits.hpp=""> 将在未来被移除。</boost></boost>

en: Added `pull(const_iterator)` to open-addressing containers. This operation
zh_Hans: 为开放寻址容器新增 `pull(const_iterator)` 操作，该操作

en: allows for efficient removal and retrieval of an element via move construction.
zh_Hans: 支持通过移动构造机制高效移除并检索指定元素。

en: Release 1.88.0
zh_Hans: 版本 1.88.0

en: Migrated the documentation to a multipage format using Antora.
zh_Hans: 使用 Antora 将文档重构为多页面格式。

en: Release 1.87.0 - Major update
zh_Hans: 版本 1.87.0 - 重大更新

en: Added concurrent, node-based containers `boost::concurrent_node_map` and `boost::concurrent_node_set`.
zh_Hans: 新增基于节点的并发容器 `boost::concurrent_node_map` 与 `boost::concurrent_node_set` 。

en: Added `insert_and_visit(x, f1, f2)` and similar operations to concurrent containers, which
zh_Hans: 为并发容器新增 `insert_and_visit(x, f1, f2)` 及类似操作，这些操作

en: allow for visitation of an element right after insertion (by contrast, `insert_or_visit(x, f)` only visits the element if insertion did _not_ take place).
zh_Hans: 支持在插入元素后立即对其进行访问（而 `insert_or_visit(x, f)` 仅在未执行插入时才访问元素）。

en: Made visitation exclusive-locked within certain
zh_Hans: 在特定 `boost::concurrent_flat_set` 操作中启用独占锁访问机制，

en: `boost::concurrent_flat_set` operations to allow for safe mutable modification of elements ({github-pr-url}/265[PR#265^]).
zh_Hans: 以支持对元素进行安全的可变修改(https://github.com/boostorg/unordered/pull/265[PR#265])。

en: In Visual Studio Natvis, supported any container with an allocator that uses fancy pointers. This applies to any fancy pointer type, as long as the proper Natvis customization point "Intrinsic" functions are written for the fancy pointer type.
zh_Hans: 在 Visual Studio Natvis 中，现支持使用带花式指针分配器的任意容器。只要为花式指针类型编写了相应的 Natvis 自定义“Intrinsic”函数，即可适用于所有花式指针类型。

en: Added GDB pretty-printers for all containers and iterators. For a container with an allocator that uses fancy pointers, these only work if the proper pretty-printer is written for the fancy pointer type itself.
zh_Hans: 为所有容器和迭代器添加 GDB 美化打印器。对于使用花式指针分配器的容器，需先为花式指针类型编写对应的美化打印器方可正常使用。

en: Fixed `std::initializer_list` assignment issues for open-addressing containers
zh_Hans: 修复开放寻址容器中 `std::initializer_list` 的 赋值问题

en: ({github-pr-url}/277[PR#277^]).
zh_Hans: (https://github.com/boostorg/unordered/pull/277[PR#277])。

en: Allowed non-copyable callables to be passed to the `std::initializer_list` overloads of `insert_{and|or}_[c]visit` for concurrent containers, by internally passing a `std::reference_wrapper` of the callable to the iterator-pair overloads.
zh_Hans: 通过内部将可调用对象的 `std::reference_wrapper` 传递给迭代器对重载，现允许向并发容器的 `insert_{and|or}_[c]visit` 的 `std::initializer_list` 重载传递不可复制的可调用对象。

en: Release 1.86.0
zh_Hans: 版本 1.86.0

en: Added container `pmr` aliases when header `<memory_resource>` is available. The alias `boost::unordered::pmr::[container]` refers to `boost::unordered::[container]` with a `std::pmr::polymorphic_allocator` allocator type.
zh_Hans: 当头文件 `<memory_resource>` 可用时，新增容器 `pmr` 别名。 `boost::unordered::pmr::[container]` 别名指向使用 `std::pmr::polymorphic_allocator` 分配器类型的 `boost::unordered::[container]` 。</memory_resource>

en: Equipped open-addressing and concurrent containers to internally calculate and provide statistical metrics affected by the quality of the hash function. This functionality is enabled by the global macro `BOOST_UNORDERED_ENABLE_STATS`.
zh_Hans: 为开放寻址容器与并发容器增设内部统计功能，可计算并提供受哈希函数质量影响的统计指标。通过全局宏 `BOOST_UNORDERED_ENABLE_STATS` 启用。

en: Avalanching hash functions must now be marked via an `is_avalanching` typedef with an embedded `value` constant set to `true` (typically, defining `is_avalanching` as `std::true_type`). `using is_avalanching = void` is deprecated but allowed for backwards compatibility.
zh_Hans: 雪崩哈希函数现在必须通过内嵌 `value` 常量设为 `true` 的 `is_avalanching` typedef 来标记（通常将 `is_avalanching` 定义为 `std::true_type`）。 `using is_avalanching = void` 已被弃用，但为了向后兼容性仍予保留。

en: Added Visual Studio Natvis framework custom visualizations for containers and iterators. This works for all containers with an allocator using raw pointers. In this release, containers and iterators are not supported if their allocator uses fancy pointers. This may be addressed in later releases.
zh_Hans: 为容器和迭代器添加 Visual Studio Natvis 框架的自定义可视化功能。此功能适用于所有使用原始指针分配器的容器。在此版本中，若容器或迭代器的分配器使用花式指针，则暂不支持该功能，此问题可能在后续版本中解决。

en: Release 1.85.0
zh_Hans: 版本 1.85.0

en: Optimized `emplace()` for a `value_type` or `init_type` (if applicable) argument to bypass creating an intermediate object. The argument is already the same type as the would-be intermediate object.
zh_Hans: 优化 `emplace()` 对 `value_type` 或 `init_type` （如适用）参数的实现，使其无需创建中间对象即可直接处理参数，因为该参数类型与待构造的中间对象类型完全相同。

en: Optimized `emplace()` for `k,v` arguments on map containers to delay constructing the object until it is certain that an element should be inserted. This optimization happens when the map's `key_type` is move constructible or when the `k` argument is a `key_type`.
zh_Hans: 优化 map 容器的 `emplace()` 对 `k,v` 参数的处理：将对象构造延迟到确认需要插入元素时执行。此优化在映射的 `key_type` 可移动构造或 `k` 参数为 `key_type` 类型时生效。

en: Fixed support for allocators with `explicit` copy constructors ({github-pr-url}/234[PR#234^]).
zh_Hans: 修复对含 `explicit` 复制构造函数的分配器的支持(https://github.com/boostorg/unordered/pull/234[PR#234])。

en: Fixed bug in the `const` version of `unordered_multimap::find(k, hash, eq)` ({github-pr-url}/238[PR#238^]).
zh_Hans: 修复 `unordered_multimap::find(k, hash, eq)` 的 `const` 版本中的缺陷(https://github.com/boostorg/unordered/pull/238[PR#238])。

en: Release 1.84.0 - Major update
zh_Hans: 版本 1.84.0 - 重大更新

en: Added `boost::concurrent_flat_set`.
zh_Hans: 新增 `boost::concurrent_flat_set` 。

en: Added `[c]visit_while` operations to concurrent containers,
zh_Hans: 为并发容器新增 `[c]visit_while` 操作，

en: with serial and parallel variants.
zh_Hans: 提供串行与并行两种执行模式。

en: Added efficient move construction of `boost::unordered_flat_(map|set)` from
zh_Hans: 实现高效双向移动构造（从

en: `boost::concurrent_flat_(map|set)` and vice versa.
zh_Hans: `boost::unordered_flat_(map|set)` 到 `boost::concurrent_flat_(map|set)` 及反向的）

en: Added bulk visitation to concurrent containers for increased lookup performance.
zh_Hans: 为并发容器新增批量访问功能以提升查找性能。

en: Added debug-mode mechanisms for detecting illegal reentrancies into
zh_Hans: 新增调试模式机制，用于检测用户代码对

en: a concurrent container from user code.
zh_Hans: 并发容器的非法重入操作。

en: Added Boost.Serialization support to all containers and their (non-local) iterator types.
zh_Hans: 为所有容器及其（非本地）迭代器类型添加 Boost.Serialization 支持。

en: Added support for fancy pointers to open-addressing and concurrent containers.
zh_Hans: 为开放寻址容器与并发容器新增对花式指针的支持，此特性支持诸如使用 Boost.Interprocess 分配器在共享内存中构建容器等应用场景。

en: This enables scenarios like the use of Boost.Interprocess allocators to construct containers in shared memory.
zh_Hans: 这使得像使用 Boost.Interprocess 分配器在共享内存中构造容器这样的场景成为可能。

en: Fixed bug in member of pointer operator for local iterators of closed-addressing
zh_Hans: 修复闭寻址容器局部迭代器的成员指针运算符缺陷

en: containers ({github-pr-url}/221[PR#221^], credit goes to GitHub user vslashg for finding and fixing this issue).
zh_Hans: （https://github.com/boostorg/unordered/pull/221[PR#221] ，致谢 GitHub 用户 vslashg 发现并修复）。

en: Starting with this release, `boost::unordered_[multi]set` and `boost::unordered_[multi]map`
zh_Hans: 从此版本起， `boost::unordered_[multi]set` 和 `boost::unordered_[multi]map`

en: only work with C++11 onwards.
zh_Hans: 仅支持 C{plus}{plus}11 及以上版本。

en: Release 1.83.0 - Major update
zh_Hans: 版本 1.83.0 - 重大更新

en: Added `boost::concurrent_flat_map`, a fast, thread-safe hashmap based on open addressing.
zh_Hans: 新增基于开放寻址的快速线程安全哈希映射容器 `boost::concurrent_flat_map` 。

en: Sped up iteration of open-addressing containers.
zh_Hans: 提升开放寻址容器的迭代性能。

en: In open-addressing containers, `erase(iterator)`, which previously returned nothing, now
zh_Hans: 在开放寻址容器中，原无返回值的 `erase(iterator)` 方法，现在

en: returns a proxy object convertible to an iterator to the next element. This enables the typical `it = c.erase(it)` idiom without incurring any performance penalty when the returned proxy is not used.
zh_Hans: 返回一个可转换为下一元素迭代器的代理对象。此改进支持典型的 `it = c.erase(it)` 编程范式，且当未使用返回的代理对象时不会产生任何性能开销。

en: Release 1.82.0 - Major update
zh_Hans: 版本 1.82.0 - 重大更新

en: {cpp}03 support is planned for deprecation. Boost 1.84.0 will no longer support
zh_Hans: 计划弃用 C{plus}{plus}03 支持。Boost 1.84.0 将不再支持

en: {cpp}03 mode and {cpp}11 will become the new minimum for using the library.
zh_Hans: C{plus}{plus}03 模式，C{plus}{plus}11 将成为使用该库的最低要求。

en: Added node-based, open-addressing containers
zh_Hans: 新增基于节点的开放寻址容器

en: `boost::unordered_node_map` and `boost::unordered_node_set`.
zh_Hans: `boost::unordered_node_map` 与 `boost::unordered_node_set`。

en: Extended heterogeneous lookup to more member functions as specified in
zh_Hans: 将异构查找功能扩展至更多成员函数

en: https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2363r5.html[P2363].
zh_Hans: （根据https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2023/p2363r5.html[P2363] 规范） 。

en: Replaced the previous post-mixing process for open-addressing containers with
zh_Hans: 取代开放寻址容器原有的后混合处理流程（采用

en: a new algorithm based on extended multiplication by a constant.
zh_Hans: 基于常量扩展乘法的新算法）。

en: Fixed bug in internal emplace() impl where stack-local types were not properly
zh_Hans: 修复内部 emplace() 实现中存在的缺陷：

en: constructed using the Allocator of the container which breaks uses-allocator construction.
zh_Hans: 该缺陷曾导致栈局部类型未能使用容器的分配器进行正确构造，从而违反分配器感知构造规范。

en: Release 1.81.0 - Major update
zh_Hans: 版本 1.81.0 - 重大更新

en: Added fast containers `boost::unordered_flat_map` and `boost::unordered_flat_set`
zh_Hans: 新增基于开放寻址的快速容器`boost::unordered_flat_map` and `boost::unordered_flat_set`。

en: based on open addressing.
zh_Hans: (基于开放寻址的)

en: Added CTAD deduction guides for all containers.
zh_Hans: 为所有容器添加 CTAD 推导指引。

en: Added missing constructors as specified in https://cplusplus.github.io/LWG/issue2713[LWG issue 2713].
zh_Hans: 补充 https://cplusplus.github.io/LWG/issue2713[LWG 问题 2713] 中要求的缺失构造函数。

en: Release 1.80.0 - Major update
zh_Hans: 版本 1.80.0 - 重大更新

en: Refactor internal implementation to be dramatically faster
zh_Hans: 重构内部实现以显著提升性能

en: Allow `final` Hasher and KeyEqual objects
zh_Hans: 允许 使用 `final` 修饰的 Hasher 和 KeyEqual 对象

en: Update documentation, adding benchmark graphs and notes on the new internal
zh_Hans: 更新文档，新增性能基准对比图及关于新内部数据结构的说明

en: data structures
zh_Hans: （数据结构）

en: Release 1.79.0
zh_Hans: 版本 1.79.0

[ctx: :110]
en: Improved {cpp}20 support:
zh_Hans: 增强 C{plus}{plus}20 标准兼容性：

en: ** All containers have been updated to support heterogeneous `count`, `equal_range` and `find`. ** All containers now implement the member function `contains`. ** `erase_if` has been implemented for all containers.
zh_Hans: ** 所有容器均已完成升级，支持异构查找操作 `count` 、 `equal_range` 及 `find` 。 ** 所有容器现均已实现成员函数 `contains` 。 ** 所有容器均已实现 `erase_if` 功能。

en: Improved {cpp}23 support:
zh_Hans: 增强 C{plus}{plus}23 标准兼容性：

en: ** All containers have been updated to support heterogeneous `erase` and `extract`.
zh_Hans: ** 所有容器均已完成升级，支持异构版本的 `erase` 与 `extract` 操作。

en: Changed behavior of `reserve` to eagerly
zh_Hans: 更改 `reserve` 的行为，

en: allocate ({github-pr-url}/59[PR#59^]).
zh_Hans: 使其立即分配桶数组空间(https://github.com/boostorg/unordered/pull/59[PR#59])。

en: Various warning fixes in the test suite.
zh_Hans: 测试套件中的多项警告修复。

en: Update code to internally use `boost::allocator_traits`.
zh_Hans: 将内部代码更新为使用 `boost::allocator_traits` 。

en: Switch to Fibonacci hashing.
zh_Hans: 切换至斐波那契哈希算法。

en: Update documentation to be written in AsciiDoc instead of QuickBook.
zh_Hans: 将文档编写格式从 QuickBook 切换为 AsciiDoc。

en: Release 1.67.0
zh_Hans: 版本 1.67.0

en: Improved {cpp}17 support:
zh_Hans: 增强 C{plus}{plus}17 标准兼容性：

en: ** Add template deduction guides from the standard. ** Use a simple implementation of `optional` in node handles, so that they're closer to the standard. ** Add missing `noexcept` specifications to `swap`, `operator=` and node handles, and change the implementation to match. Using `std::allocator_traits::is_always_equal`, or our own implementation when not available, and `boost::is_nothrow_swappable` in the implementation.
zh_Hans: ** 新增标准的模板推导指南。 ** 在节点句柄中采用简化的 `optional` 实现，以使其 更符合标准规范。 ** 为 `swap` 、 `operator=` 及节点句柄补充缺失的 `noexcept` 规范，调整实现以符合规范要求。在实现中使用 `std::allocator_traits::is_always_equal` （若该特性不可用则采用自有实现），以及 `boost::is_nothrow_swappable` 在实现中。

[ctx: :136]
en: Improved {cpp}20 support:
zh_Hans: 增强 C{plus}{plus}20 标准兼容性：

en: ** Use `boost::to_address`, which has the proposed {cpp}20 semantics, rather than the old custom implementation.
zh_Hans: ** 使用具有 C{plus}{plus}20 提案语义的 `boost::to_address` ， 来替代原有的自定义实现。

en: Add `element_type` to iterators, so that `std::pointer_traits`
zh_Hans: 向迭代器添加 `element_type` 类型定义，以支持 `std::pointer_traits` 的

en: will work.
zh_Hans: 正常工作。

en: Use `std::piecewise_construct` on recent versions of Visual {cpp},
zh_Hans: 在新版 Visual C{plus}{plus} 及

en: and other uses of the Dinkumware standard library, now using Boost.Predef to check compiler and library versions.
zh_Hans: 其他使用 Dinkumware 标准库的环境中使用 `std::piecewise_construct` ，现在使用 Boost.Predef 来检查编译器和标准库版本。

en: Use `std::iterator_traits` rather than the boost iterator traits
zh_Hans: 使用 `std::iterator++_++traits` 替代 boost 迭代器特征库，

en: in order to remove dependency on Boost.Iterator.
zh_Hans: 以消除对 Boost.Iterator 的依赖。

en: Remove iterators' inheritance from `std::iterator`, which is
zh_Hans: 移除迭代器对 `std::iterator` 的继承

en: deprecated in {cpp}17, thanks to Daniela Engert ({github-pr-url}/7[PR#7^]).
zh_Hans: （该基类在 C{plus}{plus}17 中已弃用），感谢 Daniela Engert的贡献(https://github.com/boostorg/unordered/pull/7[PR#7])。

en: Stop using `BOOST_DEDUCED_TYPENAME`.
zh_Hans: 停止使用 `BOOST_DEDUCED_TYPENAME` 。

en: Update some Boost include paths.
zh_Hans: 更新部分 Boost 头文件包含路径。

en: Rename some internal methods, and variables.
zh_Hans: 重命名部分内部方法和变量。

en: Various testing improvements.
zh_Hans: 多项测试改进。

en: Miscellaneous internal changes.
zh_Hans: 多项内部变更。

en: Release 1.66.0
zh_Hans: 版本 1.66.0

en: Simpler move construction implementation.
zh_Hans: 更简化的移动构造实现。

en: Documentation fixes ({github-pr-url}/6[GitHub #6^]).
zh_Hans: 文档修正(https://github.com/boostorg/unordered/pull/6[GitHub #6])。

en: Release 1.65.0
zh_Hans: 版本 1.65.0

en: Add deprecated attributes to `quick_erase` and `erase_return_void`.
zh_Hans: 向 `quick_erase` 和 `erase_return_void` 添加弃用属性。

en: I really will remove them in a future version this time.
zh_Hans: 本次确认将在未来版本中移除这两个接口。

en: Small standards compliance fixes:
zh_Hans: 局部标准符合性修正：

en: ** `noexpect` specs for `swap` free functions. ** Add missing `insert(P&&)` methods.
zh_Hans: ** `swap` 自由函数的 `noexcept` 规范。** 补充缺失的 `insert(P&amp;&amp;)` 方法。

en: Release 1.64.0
zh_Hans: 版本 1.64.0

en: Initial support for new {cpp}17 member functions:
zh_Hans: 初步支持 C{plus}{plus}17 新成员函数：

en: `insert_or_assign` and `try_emplace` in `unordered_map`,
zh_Hans: `unordered_map` 中的 `insert_or_assign` 和 `try_emplace`，

en: Initial support for `merge` and `extract`.
zh_Hans: 初步支持 `merge` 与 `extract` 操作。

en: Does not include transferring nodes between `unordered_map` and `unordered_multimap` or between `unordered_set` and `unordered_multiset` yet. That will hopefully be in the next version of Boost.
zh_Hans: 目前尚未支持在 `unordered_map` 与 `unordered_multimap` 之间，或 `unordered_set` 与 `unordered_multiset` 之间转移节点。该功能有望在下一版 Boost 中提供。

en: Release 1.63.0
zh_Hans: 版本 1.63.0

en: Check hint iterator in `insert`/`emplace_hint`.
zh_Hans: 检查 `insert` / `emplace_hint` 操作中提示迭代器的有效性。

en: Fix some warnings, mostly in the tests.
zh_Hans: 修复部分警告（主要出现在测试中）。

en: Manually write out `emplace_args` for small numbers of arguments -
zh_Hans: 为参数数量较少的情况手动编写 `emplace_args` 代码，

en: should make template error messages a little more bearable.
zh_Hans: 以减轻模板错误消息的负担。

en: Remove superfluous use of `boost::forward` in emplace arguments,
zh_Hans: 移除 emplace 参数中多余的 `boost::forward` 调用，

en: which fixes emplacing string literals in old versions of Visual {cpp}.
zh_Hans: 以修复旧版 Visual C{plus}{plus} 中字面量字符串的就地构造问题。

en: Fix an exception safety issue in assignment. If bucket allocation
zh_Hans: 修复赋值操作中的异常安全问题。若桶分配过程

en: throws an exception, it can overwrite the hash and equality functions while leaving the existing elements in place. This would mean that the function objects wouldn't match the container elements, so elements might be in the wrong bucket and equivalent elements would be incorrectly handled.
zh_Hans: 抛出异常，可能导致哈希函数与相等性判断函数被覆盖，而现有元素仍保留在容器中。这将造成函数对象与容器元素不匹配，进而引发元素错置桶位及等价元素处理错误的问题。

en: Various reference documentation improvements.
zh_Hans: 多项参考文档改进。

en: Better allocator support ({svn-ticket-url}/12459[#12459^]).
zh_Hans: 增强的分配器支持(https://svn.boost.org/trac/boost/ticket/12459[#12459])。

en: Make the no argument constructors implicit.
zh_Hans: 将无参构造函数改为隐式声明。

en: Implement missing allocator aware constructors.
zh_Hans: 实现缺失的分配器感知构造函数。

en: Fix assigning the hash/key equality functions for empty containers.
zh_Hans: 修复空容器在设置哈希函数与键值相等性判断函数时存在的问题。

en: Remove unary/binary_function from the examples in the documentation.
zh_Hans: 从文档示例中移除 unary/binary_function。

en: They are removed in {cpp}17.
zh_Hans: 这两者在 C{plus}{plus}17 中已被移除。

en: Support 10 constructor arguments in emplace. It was meant to support up to 10
zh_Hans: emplace 方法现支持 10 个构造参数。其设计本应支持最多 10 个参数，

en: arguments, but an off by one error in the preprocessor code meant it only supported up to 9.
zh_Hans: 但由于预处理代码中存在差一错误，仅支持 9 个参数。

en: Release 1.62.0
zh_Hans: 版本 1.62.0

en: Remove use of deprecated `boost::iterator`.
zh_Hans: 停止使用已弃用的 `boost::iterator` 组件 。

en: Remove `BOOST_NO_STD_DISTANCE` workaround.
zh_Hans: 移除 `BOOST_NO_STD_DISTANCE` 的兼容性代码。

en: Remove `BOOST_UNORDERED_DEPRECATED_EQUALITY` warning.
zh_Hans: 移除 `BOOST_UNORDERED_DEPRECATED_EQUALITY` 警告。

en: Simpler implementation of assignment, fixes an exception safety issue
zh_Hans: 采用更简化的赋值操作实现，修复了

en: for `unordered_multiset` and `unordered_multimap`. Might be a little slower.
zh_Hans: `unordered_multiset` 与 `unordered_multimap` 的异常安全问题，但性能可能略有下降。

en: Stop using return value SFINAE which some older compilers have issues
zh_Hans: 停止使用返回值SFINAE技术，以避免部分旧版本编译器的

en: with.
zh_Hans: 兼容性问题。

en: Release 1.58.0
zh_Hans: 版本 1.58.0

en: Remove unnecessary template parameter from const iterators.
zh_Hans: 移除常量迭代器中不必要的模板参数。

en: Rename private `iterator` typedef in some iterator classes, as it
zh_Hans: 重命名部分迭代器类中私有的 `iterator` 类型别名，以

en: confuses some traits classes.
zh_Hans: 避免某些特征类产生混淆。

en: Fix move assignment with stateful, propagate_on_container_move_assign
zh_Hans: 修复当使用具有状态且设置了propagate_on_container_move_assign 的分配器时，

en: allocators ({svn-ticket-url}/10777[#10777^]).
zh_Hans: 移动赋值操作存在的缺陷(https://svn.boost.org/trac/boost/ticket/10777[#10777])。

en: Fix rare exception safety issue in move assignment.
zh_Hans: 修复移动赋值操作中一处罕见的异常安全问题。

en: Fix potential overflow when calculating number of buckets to allocate
zh_Hans: 修复计算待分配桶数量时可能出现的溢出问题

en: ({github-pr-url}/4[GitHub #4^]).
zh_Hans: (https://github.com/boostorg/unordered/pull/4[GitHub #4])。

en: Release 1.57.0
zh_Hans: 版本 1.57.0

en: Fix the `pointer` typedef in iterators ({svn-ticket-url}/10672[#10672^]).
zh_Hans: 修复迭代器中 `pointer` 类型定义的问题(https://svn.boost.org/trac/boost/ticket/10672[#10672])。

en: Fix Coverity warning
zh_Hans: 修复 Coverity 警告

en: ({github-pr-url}/2[GitHub #2^]).
zh_Hans: (https://github.com/boostorg/unordered/pull/2[GitHub #2])。

en: Release 1.56.0
zh_Hans: 版本 1.56.0

en: Fix some shadowed variable warnings ({svn-ticket-url}/9377[#9377^]).
zh_Hans: 修复部分变量遮蔽警告(https://svn.boost.org/trac/boost/ticket/9377[#9377])。

en: Fix allocator use in documentation ({svn-ticket-url}/9719[#9719^]).
zh_Hans: 修正文档中的分配器用法(https://svn.boost.org/trac/boost/ticket/9719[#9719])。

en: Always use prime number of buckets for integers. Fixes performance
zh_Hans: 对整数键始终采用质数桶数量。此修复解决了

en: regression when inserting consecutive integers, although makes other uses slower ({svn-ticket-url}/9282[#9282^]).
zh_Hans: 插入连续整数时的性能回归问题，但可能会降低其他使用场景的速度(https://svn.boost.org/trac/boost/ticket/9282[#9282])。

en: Only construct elements using allocators, as specified in {cpp}11 standard.
zh_Hans: 严格遵循 C{plus}{plus}11 标准规定，仅使用分配器构造元素。

en: Release 1.55.0
zh_Hans: 版本 1.55.0

en: Avoid some warnings ({svn-ticket-url}/8851[#8851^], {svn-ticket-url}/8874[#8874^]).
zh_Hans: 避免部分警告(https://svn.boost.org/trac/boost/ticket/8851[#8851] 、 https://svn.boost.org/trac/boost/ticket/8874[#8874])。

en: Avoid exposing some detail functions via. ADL on the iterators.
zh_Hans: 避免通过迭代器上的 ADL 暴露部分细节函数。

en: Follow the standard by only using the allocators' construct and destroy
zh_Hans: 遵循标准规范，仅使用分配器的 construct 和 destroy

en: methods to construct and destroy stored elements. Don't use them for internal data like pointers.
zh_Hans: 方法来构造和析构存储的元素，不将其用于指针等内部数据的操作。

en: Release 1.54.0
zh_Hans: 版本 1.54.0

en: Mark methods specified in standard as `noexpect`. More to come in the next
zh_Hans: 为标准中指定的方法标注 `noexcept` 。更多方法将在下一

en: release.
zh_Hans: 版本中更新。

en: If the hash function and equality predicate are known to both have nothrow
zh_Hans: 若已知哈希函数与相等性谓词均具备无抛出

en: move assignment or construction then use them.
zh_Hans: 移动赋值或移动构造特性，则使用它们。

en: Release 1.53.0
zh_Hans: 版本 1.53.0

en: Remove support for the old pre-standard variadic pair constructors, and
zh_Hans: 移除对旧式变参 pair 构造函数和

en: equality implementation. Both have been deprecated since Boost 1.48.
zh_Hans: 相等性实现的支持，这两项功能自 Boost 1.48 起已被弃用。

en: Remove use of deprecated config macros.
zh_Hans: 停止使用已弃用的配置宏。

en: More internal implementation changes, including a much simpler
zh_Hans: 更多内部实现变更，包括采用更简化的

en: implementation of `erase`.
zh_Hans: `erase` 方法 实现。

en: Release 1.52.0
zh_Hans: 版本 1.52.0

en: Faster assign, which assigns to existing nodes where possible, rather than
zh_Hans: 加速赋值操作：尽可能复用现有节点进行赋值，

en: creating entirely new nodes and copy constructing.
zh_Hans: 而非创建全新节点并执行复制构造。

en: Fixed bug in `erase_range` ({svn-ticket-url}/7471[#7471^]).
zh_Hans: 修复 `erase_range` 方法中的缺陷(https://svn.boost.org/trac/boost/ticket/7471[#7471])。

en: Reverted some of the internal changes to how nodes are created, especially
zh_Hans: 回退部分关于节点创建机制的内部变更（尤其

en: for {cpp}11 compilers. 'construct' and 'destroy' should work a little better for {cpp}11 allocators.
zh_Hans: 针对 C{plus}{plus}11 编译器），使 'construct' 和 'destroy' 对 C{plus}{plus}11 分配器更有效。

en: Simplified the implementation a bit. Hopefully more robust.
zh_Hans: 简化实现，以提高健壮性。

en: Release 1.51.0
zh_Hans: 版本 1.51.0

en: Fix construction/destruction issue when using a {cpp}11 compiler with a
zh_Hans: 修复当使用 C{plus}{plus}11 编译器搭配 C{plus}{plus}03 分配器时

en: {cpp}03 allocator ({svn-ticket-url}/7100[#7100^]).
zh_Hans: 出现的构造/析构问题(https://svn.boost.org/trac/boost/ticket/7100[#7100])。

en: Remove a `try..catch` to support compiling without exceptions.
zh_Hans: 移除一段 `try..catch` 代码块以支持无异常编译模式。

en: Adjust SFINAE use to try to support g++ 3.4 ({svn-ticket-url}/7175[#7175^]).
zh_Hans: 调整 SFINAE 的实现方式以兼容 g{plus}{plus} 3.4(https://svn.boost.org/trac/boost/ticket/7175[#7175])。

en: Updated to use the new config macros.
zh_Hans: 更新为使用新的配置宏。

en: Release 1.50.0
zh_Hans: 版本 1.50.0

en: Fix equality for `unordered_multiset` and `unordered_multimap`.
zh_Hans: 修复 `unordered_multiset` 与 `unordered_multimap` 的相等性判断逻辑。

en: {svn-ticket-url}/6857[Ticket 6857^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/6857[问题单 6857] ：

en: Implement `reserve`.
zh_Hans: 实现 `reserve` 。

en: {svn-ticket-url}/6771[Ticket 6771^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/6771[问题 6771] ：

en: Avoid gcc's `-Wfloat-equal` warning.
zh_Hans: 规避 gcc 的 `-Wfloat-equal` 编译警告。

en: {svn-ticket-url}/6784[Ticket 6784^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/6784[问题单 6784] ：

en: Fix some Sun specific code.
zh_Hans: 修复部分 Sun 编译器专用代码。

en: {svn-ticket-url}/6190[Ticket 6190^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/6190[问题单 6190] ：

en: Avoid gcc's `-Wshadow` warning.
zh_Hans: 规避 gcc 的 `-Wshadow` 编译警告。

en: {svn-ticket-url}/6905[Ticket 6905^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/6905[问题单 6905] ：

en: Make namespaces in macros compatible with `bcp` custom namespaces. Fixed by Luke Elliott.
zh_Hans: 使宏中的命名空间与 `bcp` 自定义命名空间兼容（由 Luke Elliott 修复）。

en: Remove some of the smaller prime number of buckets, as they may make
zh_Hans: 移除部分较小的质数桶数量，因为这些数值

en: collisions quite probable (e.g. multiples of 5 are very common because we used base 10).
zh_Hans: 可能显著增加冲突概率（例如，由于我们使用十进制，5的倍数出现频率很高）。

en: On old versions of Visual {cpp}, use the container library's implementation
zh_Hans: 对于旧版本 Visual C{plus}{plus}，优先使用容器库自带的

en: of `allocator_traits`, as it's more likely to work.
zh_Hans: `allocator_traits` 实现，因其兼容性更佳。

en: On machines with 64 bit std::size_t, use power of 2 buckets, with Thomas
zh_Hans: 64 位 std::size_t 机器上使用 2 的幂次桶数量，通过 Thomas

en: Wang's hash function to pick which one to use. As modulus is very slow for 64 bit values.
zh_Hans: Wang 哈希函数选择桶（因取模运算在 64 位值上极慢）。

en: Some internal changes.
zh_Hans: 部分内部变更。

en: Release 1.49.0
zh_Hans: 版本 1.49.0

en: Fix warning due to accidental odd assignment.
zh_Hans: 修复因意外出现的异常赋值操作而产生的编译警告。

en: Slightly better error messages.
zh_Hans: 轻微优化错误消息。

en: Release 1.48.0 - Major update
zh_Hans: 版本 1.48.0 - 重大更新

en: This is major change which has been converted to use Boost.Move's move emulation, and be more compliant with the {cpp}11 standard. See the xref:compliance.adoc[compliance section] for details.
zh_Hans: 本本次为重大更新：容器已改用 Boost.Move 的移动操作模拟实现，并显著提升了对 C{plus}{plus}11 标准的符合性。详见 xref:compliance.adoc[标准合规性章节] 。

en: The container now meets {cpp}11's complexity requirements, but to do so uses a little more memory. This means that `quick_erase` and `erase_return_void` are no longer required, they'll be removed in a future version.
zh_Hans: 该容器现满足 C{plus}{plus}11 的复杂度要求，但为此会占用稍多内存。这意味着 `quick_erase` 与 `erase_return_void` 接口已不再必需，将在未来版本中移除。

en: {cpp}11 support has resulted in some breaking changes:
zh_Hans: C{plus}{plus}11 支持导致部分破坏性变更：

en: Equality comparison has been changed to the {cpp}11 specification.
zh_Hans: 相等性比较已改为遵循 C{plus}{plus}11 规范。

en: In a container with equivalent keys, elements in a group with equal keys used to have to be in the same order to be considered equal, now they can be a permutation of each other. To use the old behavior define the macro `BOOST_UNORDERED_DEPRECATED_EQUALITY`.
zh_Hans: 在包含等价键的容器中，原先要求同一组等价键内的元素必须顺序一致才被视为相等，现在则允许它们互为排列。如需使用旧行为，请定义宏 `BOOST_UNORDERED_DEPRECATED_EQUALITY` 。

en: The behaviour of swap is different when the two containers to be
zh_Hans: 当两个待交换容器的分配器不相等时，swap 操作的行为发生变更。

en: swapped has unequal allocators. It used to allocate new nodes using the appropriate allocators, it now swaps the allocators if the allocator has a member structure `propagate_on_container_swap`, such that `propagate_on_container_swap::value` is true.
zh_Hans: 旧版本会通过相应的分配器分配新节点，现在则改为：若分配器包含 `propagate_on_container_swap` 成员结构体且其 `propagate_on_container_swap::value` 为 true，则会交换分配器本身。

en: Allocator's `construct` and `destroy` functions are called with raw
zh_Hans: 现在当调用分配器的 `construct` 与 `destroy` 时，直接传入原始指针，

en: pointers, rather than the allocator's `pointer` type.
zh_Hans: 而非分配器定义的 `pointer` 类型。

en: `emplace` used to emulate the variadic pair constructors that
zh_Hans: `emplace` 方法原先模拟了

en: appeared in early {cpp}0x drafts. Since they were removed it no longer does so. It does emulate the new `piecewise_construct` pair constructors - only you need to use `boost::piecewise_construct`. To use the old emulation of the variadic constructors define `BOOST_UNORDERED_DEPRECATED_PAIR_CONSTRUCT`.
zh_Hans: 早期 C{plus}{plus}0x 草案中的变参 pair 构造函数。由于该特性已被移除，现不再提供此模拟实现。当前仅模拟新的 `piecewise_construct` pair 构造函数，但需使用 `boost::piecewise_construct` 作为参数。若需启用旧版变参构造函数的模拟行为，请定义宏 `BOOST_UNORDERED_DEPRECATED_PAIR_CONSTRUCT` 。

en: Release 1.45.0
zh_Hans: 版本 1.45.0

en: Fix a bug when inserting into an `unordered_map` or `unordered_set` using
zh_Hans: 修复了在使用返回 `value_type` 副本的迭代器插入 `unordered_map` 或 `unordered_set` 时的一个错误。

en: iterators which returns `value_type` by copy.
zh_Hans: (使用返回 `value_type` 副本)

en: Release 1.43.0
zh_Hans: 版本 1.43.0

en: {svn-ticket-url}/3966[Ticket 3966^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/3966[问题单 3966] ：

en: `erase_return_void` is now `quick_erase`, which is the http://home.roadrunner.com/~hinnant/issue_review/lwg-active.html#579[ current forerunner for resolving the slow erase by iterator^], although there's a strong possibility that this may change in the future. The old method name remains for backwards compatibility but is considered deprecated and will be removed in a future release.
zh_Hans: `erase_return_void` 更名为 `quick_erase` （符合 http://home.roadrunner.com/~hinnant/issue_review/lwg-active.html#579[当前迭代器擦除缓慢的解决方案^]）。旧方法名出于向后兼容性予以保留，但已被视为弃用接口，将在未来版本中移除。

en: Use Boost.Exception.
zh_Hans: 使用 Boost.Exception。

en: Stop using deprecated `BOOST_HAS_*` macros.
zh_Hans: 停止使用已弃用的 `BOOST_HAS_*` 系列宏。

en: Release 1.42.0
zh_Hans: 版本 1.42.0

en: Support instantiating the containers with incomplete value types.
zh_Hans: 支持使用不完整值类型来实例化容器。

en: Reduced the number of warnings (mostly in tests).
zh_Hans: 减少编译警告数量（主要出现在测试中）。

en: Improved codegear compatibility.
zh_Hans: 提升 Codegear 兼容性。

en: {svn-ticket-url}/3693[Ticket 3693^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/3693[问题单 3693] ：

en: Add `erase_return_void` as a temporary workaround for the current `erase` which can be inefficient because it has to find the next element to return an iterator.
zh_Hans: 新增 `erase_return_void` 作为临时解决方案，以应对当前 `erase` 方法因需查找下一元素返回迭代器而可能产生的效率问题。

en: Add templated find overload for compatible keys.
zh_Hans: 新增针对兼容键的模板化 find 重载。

en: {svn-ticket-url}/3773[Ticket 3773^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/3773[问题单 3773] ：

en: Add missing `std` qualifier to `ptrdiff_t`.
zh_Hans: 为 `ptrdiff_t` 添加缺失的 `std` 限定符。

en: Some code formatting changes to fit almost all lines into 80 characters.
zh_Hans: 调整代码格式，使大多数代码行不超过 80 字符。

en: Release 1.41.0 - Major update
zh_Hans: 版本 1.41.0 - 重大更新

en: The original version made heavy use of macros to sidestep some of the older
zh_Hans: 初始版本曾大量使用

en: compilers' poor template support. But since I no longer support those compilers and the macro use was starting to become a maintenance burden it has been rewritten to use templates instead of macros for the implementation classes.
zh_Hans: 宏来规避旧式编译器薄弱的模板支持能力。鉴于现已不再支持这些编译器，且宏的使用逐渐成为维护负担，现将实现类重构为使用模板替代宏。

en: The container object is now smaller thanks to using `boost::compressed_pair`
zh_Hans: 通过 `boost::compressed_pair` 实现 EBO 及微调函数缓冲区

en: for EBO and a slightly different function buffer - now using a bool instead of a member pointer.
zh_Hans: （现使用 bool 替代成员指针），容器对象的内存占用得以减小。

en: Buckets are allocated lazily which means that constructing an empty container
zh_Hans: 桶采用延迟分配机制，这意味着构造空容器时

en: will not allocate any memory.
zh_Hans: 不会分配任何内存。

en: Release 1.40.0
zh_Hans: 版本 1.40.0

en: {svn-ticket-url}/2975[Ticket 2975^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/2975[问题单 2975] ：

en: Store the prime list as a preprocessor sequence - so that it will always get the length right if it changes again in the future.
zh_Hans: 将质数列表存储为预处理序列，确保未来再次调整列表长度时能自动保持正确。

en: {svn-ticket-url}/1978[Ticket 1978^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/1978[问题单 1978] ：

en: Implement `emplace` for all compilers.
zh_Hans: 为所有编译器实现 `emplace` 。

en: {svn-ticket-url}/2908[Ticket 2908^],
zh_Hans: https://svn.boost.org/trac/boost/ticket/2908[问题单 2908] 、

en: {svn-ticket-url}/3096[Ticket 3096^]: Some workarounds for old versions of borland, including adding explicit destructors to all containers.
zh_Hans: https://svn.boost.org/trac/boost/ticket/3096[问题单 3096] ：针对旧版 borland 的变通方案（包括为所有容器添加显式析构函数）。

en: {svn-ticket-url}/3082[Ticket 3082^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/3082[问题单 3082] ：

en: Disable incorrect Visual {cpp} warnings.
zh_Hans: 禁用 Visual C{plus}{plus} 编译器的错误警告。

en: Better configuration for {cpp}0x features when the headers aren't available.
zh_Hans: 对 C{plus}{plus}0x 特性提供优化方案，以应对头文件不可用的情况。

en: Create less buckets by default.
zh_Hans: 默认创建更少的桶。

en: Release 1.39.0
zh_Hans: 版本 1.39.0

en: {svn-ticket-url}/2756[Ticket 2756^]: Avoid a warning
zh_Hans: https://svn.boost.org/trac/boost/ticket/2756[问题单 2756] ：规避

en: on Visual {cpp} 2009.
zh_Hans: Visual C{plus}{plus} 2009 的编译警告。

en: Some other minor internal changes to the implementation, tests and
zh_Hans: 对实现、测试及文档进行其他少量内部调整。

en: documentation.
zh_Hans: （文档）

en: Avoid an unnecessary copy in `operator[]`.
zh_Hans: 避免 `operator[]` 中不必要的复制。

en: {svn-ticket-url}/2975[Ticket 2975^]: Fix length of
zh_Hans: https://svn.boost.org/trac/boost/ticket/2975[问题单 2975] ：修正

en: prime number list.
zh_Hans: 质数列表长度。

en: Release 1.38.0
zh_Hans: 版本 1.38.0

en: Use link:../../../../core/swap.html[`boost::swap`^].
zh_Hans: 使用 link:../../../../core/swap.html[`boost::swap`] 。

en: {svn-ticket-url}/2237[Ticket 2237^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/2237[问题单 2237] ：

en: Document that the equality and inequality operators are undefined for two objects if their equality predicates aren't equivalent. Thanks to Daniel Krügler.
zh_Hans: 补充说明：如果两个对象的相等谓词不等价，则它们的相等与不等运算符的行为未定义。感谢 Daniel Krügler。

en: {svn-ticket-url}/1710[Ticket 1710^]:
zh_Hans: https://svn.boost.org/trac/boost/ticket/1710[问题单 1710]：

en: Use a larger prime number list. Thanks to Thorsten Ottosen and Hervé Brönnimann.
zh_Hans: 采用更长的质数列表。感谢 Thorsten Ottosen 与 Hervé Brönnimann 的贡献。

en: Use
zh_Hans: 使用

en: link:../../../../type_traits/index.html[aligned storage^] to store the types. This changes the way the allocator is used to construct nodes. It used to construct the node with two calls to the allocator's `construct` method - once for the pointers and once for the value. It now constructs the node with a single call to construct and then constructs the value using in place construction.
zh_Hans: link:../../../../type_traits/index.html[对齐存储] 来存储类型。这改变了利用分配器构造节点的方式：原先通过两次调用分配器的 `construct` 方法分别构造指针和值，现在仅通过单次调用构造节点，随后采用就地构造方式构建值对象。

en: Add support for {cpp}0x initializer lists where they're available (currently
zh_Hans: 在可用时支持 C{plus}{plus}0x 初始化列表（当前

en: only g++ 4.4 in {cpp}0x mode).
zh_Hans: 仅 g{plus}{plus} 4.4 的 C{plus}{plus}0x 模式）。

en: Release 1.37.0
zh_Hans: 版本 1.37.0

en: Rename overload of `emplace` with hint, to `emplace_hint` as specified in
zh_Hans: 将带提示的 `emplace` 重载更名为 `emplace++_++hint` 。

en: http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2691.pdf[n2691^].
zh_Hans: （根据 http://www.open-std.org/JTC1/SC22/WG21/docs/papers/2008/n2691.pdf[n2691^] 规范）

en: Provide forwarding headers at `<boost/unordered/unordered_map_fwd.hpp>` and
zh_Hans: 在 `<boost unordered="" unordered_map_fwd.hpp="">` 与</boost>

en: `<boost/unordered/unordered_set_fwd.hpp>`.
zh_Hans: `<boost unordered="" unordered_set_fwd.hpp="">` 路径下提供前向声明头文件。</boost>

en: Move all the implementation inside `boost/unordered`, to assist
zh_Hans: 将所有实现移至 `boost/unordered` 内，以支持

en: modularization and hopefully make it easier to track Release subversion.
zh_Hans: 模块化并便于跟踪发布版本。

en: Release 1.36.0
zh_Hans: 版本 1.36.0

en: First official release.
zh_Hans: 首次正式发布。

en: Rearrange the internals.
zh_Hans: 调整内部结构。

en: Move semantics - full support when rvalue references are available, emulated
zh_Hans: 移动语义：在支持右值引用的环境中提供完整支持，否则

en: using a cut down version of the Adobe move library when they are not.
zh_Hans: 使用精简版 Adobe 移动库进行模拟实现。

en: Emplace support when rvalue references and variadic template are available.
zh_Hans: 支持右值引用和变参模板时提供就地构造支持。

en: More efficient node allocation when rvalue references and variadic template
zh_Hans: 节点分配效率更高（当右值引用和变参模板

en: are available.
zh_Hans: 可用时）。

en: Added equality operators.
zh_Hans: 新增相等性判断运算符。

en: Boost 1.35.0 Add-on - 31st March 2008
zh_Hans: Boost 1.35.0 附加版本 - 2008年3月31日

en: Unofficial release uploaded to vault, to be used with Boost 1.35.0. Incorporated many of the suggestions from the review.
zh_Hans: 非官方版本已上传至资源库，适用于 Boost 1.35.0。该版本已采纳评审阶段的多项改进建议。

en: Improved portability thanks to Boost regression testing.
zh_Hans: 通过 Boost 回归测试，代码可移植性得到显著提升。

en: Fix lots of typos, and clearer text in the documentation.
zh_Hans: 修正文档中的多处笔误，并优化文本表述以提升可读性。

en: Fix floating point to `std::size_t` conversion when calculating sizes from
zh_Hans: 修复根据最大负载因子计算容器大小时，浮点数到 `std::size_t` 的转换问题，

en: the max load factor, and use `double` in the calculation for greater accuracy.
zh_Hans: 并在计算过程中使用 `double` 类型来提高精度。

en: Fix some errors in the examples.
zh_Hans: 修正示例中的部分错误。

en: Review Version
zh_Hans: 评审版本

en: Initial review version, for the review conducted from 7th December 2007 to 16th December 2007.
zh_Hans: 初始评审版本（评审时间：2007年12月7日至12月16日）。
