msgid ""
msgstr ""
"Project-Id-Version: English (Boost Unordered Translation (zh_Hans))\n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2026-06-06 19:12+0000\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: English <https://insights.cppalliance.org/weblate/projects/"
"boost-unordered-documentation-zh_Hans/doc-modules-root-pages-compliance-adoc/"
"en/>\n"
"Language: en\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Plural-Forms: nplurals=2; plural=n != 1;\n"
"X-Generator: Weblate 2026.5\n"

#: :2
#, read-only, safe-html, strict-same
msgid "= Standard Compliance"
msgstr "= Standard Compliance"

#: :4
#, read-only, safe-html, strict-same
msgid ":idprefix: compliance_"
msgstr ":idprefix: compliance_"

#: :6
#, read-only, safe-html, strict-same
msgid ":cpp: C++"
msgstr ":cpp: C++"

#: :8
#, read-only, safe-html, strict-same
msgid "Closed-addressing Containers"
msgstr "Closed-addressing Containers"

#: :10
#, read-only, safe-html, strict-same
msgid ""
"`boost::unordered_[multi]set` and `boost::unordered_[multi]map` provide a "
"conformant implementation for {cpp}11 (or later) compilers of the latest "
"standard revision of {cpp} unordered associative containers, with very minor "
"deviations as noted. The containers are fully https://en.cppreference.com/w/"
"cpp/named_req/AllocatorAwareContainer[AllocatorAware^] and support https://"
"en.cppreference.com/w/cpp/named_req/Allocator#Fancy_pointers[fancy "
"pointers^]."
msgstr ""
"`boost::unordered_[multi]set` and `boost::unordered_[multi]map` provide a "
"conformant implementation for {cpp}11 (or later) compilers of the latest "
"standard revision of {cpp} unordered associative containers, with very minor "
"deviations as noted. The containers are fully https://en.cppreference.com/w/"
"cpp/named_req/AllocatorAwareContainer[AllocatorAware^] and support https://"
"en.cppreference.com/w/cpp/named_req/Allocator#Fancy_pointers[fancy "
"pointers^]."

#: :16
#, read-only, safe-html, strict-same
msgid "Deduction Guides"
msgstr "Deduction Guides"

#: :18
#, read-only, safe-html, strict-same
msgid ""
"Deduction guides for https://en.cppreference.com/w/cpp/language/"
"class_template_argument_deduction[class template argument deduction (CTAD)^] "
"are only available on {cpp}17 (or later) compilers."
msgstr ""
"Deduction guides for https://en.cppreference.com/w/cpp/language/"
"class_template_argument_deduction[class template argument deduction (CTAD)^] "
"are only available on {cpp}17 (or later) compilers."

#: :22
#, read-only, safe-html, strict-same
msgid "Piecewise Pair Emplacement"
msgstr "Piecewise Pair Emplacement"

#: :24
#, read-only, safe-html, strict-same
msgid ""
"In accordance with the standard specification, "
"`boost::unordered_[multi]map::emplace` supports piecewise pair construction:"
msgstr ""
"In accordance with the standard specification, "
"`boost::unordered_[multi]map::emplace` supports piecewise pair construction:"

#: :36
#, read-only, safe-html, strict-same
msgid ""
"Additionally, the same functionality is provided via non-standard "
"`boost::unordered::piecewise_construct` and Boost.Tuple:"
msgstr ""
"Additionally, the same functionality is provided via non-standard "
"`boost::unordered::piecewise_construct` and Boost.Tuple:"

#: :47
#, read-only, safe-html, strict-same
msgid ""
"This feature has been retained for backwards compatibility with previous "
"versions of Boost.Unordered: users are encouraged to update their code to "
"use `std::piecewise_construct` and ``std::tuple``s instead."
msgstr ""
"This feature has been retained for backwards compatibility with previous "
"versions of Boost.Unordered: users are encouraged to update their code to "
"use `std::piecewise_construct` and ``std::tuple``s instead."

#: :52
#, read-only, safe-html, strict-same
msgid "Swap"
msgstr "Swap"

#: :54
#, read-only, safe-html, strict-same
msgid ""
"When swapping, `Pred` and `Hash` are not currently swapped by calling "
"`swap`, their copy constructors are used. As a consequence, when swapping an "
"exception may be thrown from their copy constructor."
msgstr ""
"When swapping, `Pred` and `Hash` are not currently swapped by calling "
"`swap`, their copy constructors are used. As a consequence, when swapping an "
"exception may be thrown from their copy constructor."

#: :58
#, read-only, safe-html, strict-same
msgid "Open-addressing Containers"
msgstr "Open-addressing Containers"

#: :60
#, read-only, safe-html, strict-same
msgid ""
"The C++ standard does not currently provide any open-addressing container "
"specification to adhere to, so `boost::unordered_flat_set`/"
"`unordered_node_set` and `boost::unordered_flat_map`/`unordered_node_map` "
"take inspiration from `std::unordered_set` and `std::unordered_map`, "
"respectively, and depart from their interface where convenient or as "
"dictated by their internal data structure, which is radically different from "
"that imposed by the standard (closed addressing)."
msgstr ""
"The C++ standard does not currently provide any open-addressing container "
"specification to adhere to, so `boost::unordered_flat_set`/"
"`unordered_node_set` and `boost::unordered_flat_map`/`unordered_node_map` "
"take inspiration from `std::unordered_set` and `std::unordered_map`, "
"respectively, and depart from their interface where convenient or as "
"dictated by their internal data structure, which is radically different from "
"that imposed by the standard (closed addressing)."

#: :67
#, read-only, safe-html, strict-same
msgid ""
"Open-addressing containers provided by Boost.Unordered only work with "
"reasonably compliant C++11 (or later) compilers. Language-level features "
"such as move semantics and variadic template parameters are then not "
"emulated. The containers are fully https://en.cppreference.com/w/cpp/"
"named_req/AllocatorAwareContainer[AllocatorAware^] and support https://"
"en.cppreference.com/w/cpp/named_req/Allocator#Fancy_pointers[fancy "
"pointers^]."
msgstr ""
"Open-addressing containers provided by Boost.Unordered only work with "
"reasonably compliant C++11 (or later) compilers. Language-level features "
"such as move semantics and variadic template parameters are then not "
"emulated. The containers are fully https://en.cppreference.com/w/cpp/"
"named_req/AllocatorAwareContainer[AllocatorAware^] and support https://"
"en.cppreference.com/w/cpp/named_req/Allocator#Fancy_pointers[fancy "
"pointers^]."

#: :74
#, read-only, safe-html, strict-same
msgid "The main differences with C++ unordered associative containers are:"
msgstr "The main differences with C++ unordered associative containers are:"

#: :76
#, read-only, safe-html, strict-same
msgid "In general:"
msgstr "In general:"

#: :77
#, read-only, safe-html, strict-same
msgid ""
"** `begin()` is not constant-time. ** `erase(iterator)` does not return an "
"iterator to the following element, but a proxy object that converts to that "
"iterator if requested; this avoids a potentially costly iterator increment "
"operation when not needed. ** There is no API for bucket handling (except "
"`bucket_count`). ** The maximum load factor of the container is managed "
"internally and can't be set by the user. The maximum load, exposed through "
"the public function `max_load`, may decrease on erasure under high-load "
"conditions."
msgstr ""
"** `begin()` is not constant-time. ** `erase(iterator)` does not return an "
"iterator to the following element, but a proxy object that converts to that "
"iterator if requested; this avoids a potentially costly iterator increment "
"operation when not needed. ** There is no API for bucket handling (except "
"`bucket_count`). ** The maximum load factor of the container is managed "
"internally and can't be set by the user. The maximum load, exposed through "
"the public function `max_load`, may decrease on erasure under high-load "
"conditions."

#: :84
#, read-only, safe-html, strict-same
msgid ""
"Flat containers (`boost::unordered_flat_set` and `boost::unordered_flat_map`)"
":"
msgstr ""
"Flat containers (`boost::unordered_flat_set` and `boost::unordered_flat_map`)"
":"

#: :85
#, read-only, safe-html, strict-same
msgid ""
"** `value_type` must be move-constructible. ** Pointer stability is not kept "
"under rehashing. ** There is no API for node extraction/insertion."
msgstr ""
"** `value_type` must be move-constructible. ** Pointer stability is not kept "
"under rehashing. ** There is no API for node extraction/insertion."

#: :89
#, read-only, safe-html, strict-same
msgid "Concurrent Containers"
msgstr "Concurrent Containers"

#: :91
#, read-only, safe-html, strict-same
msgid ""
"There is currently no specification in the C++ standard for this or any "
"other type of concurrent data structure. The APIs of "
"`boost::concurrent_flat_set`/`boost::concurrent_node_set` and "
"`boost::concurrent_flat_map`/`boost::concurrent_node_map` are modelled after "
"`std::unordered_flat_set` and `std::unordered_flat_map`, respectively, with "
"the crucial difference that iterators are not provided due to their inherent "
"problems in concurrent scenarios (high contention, prone to deadlocking): "
"so, Boost.Unordered concurrent containers are technically not models of "
"https://en.cppreference.com/w/cpp/named_req/Container[Container^], although "
"they meet all the requirements of https://en.cppreference.com/w/cpp/"
"named_req/AllocatorAwareContainer[AllocatorAware^] containers (including "
"https://en.cppreference.com/w/cpp/named_req/Allocator#Fancy_pointers[fancy "
"pointer^] support) except those implying iterators."
msgstr ""
"There is currently no specification in the C++ standard for this or any "
"other type of concurrent data structure. The APIs of "
"`boost::concurrent_flat_set`/`boost::concurrent_node_set` and "
"`boost::concurrent_flat_map`/`boost::concurrent_node_map` are modelled after "
"`std::unordered_flat_set` and `std::unordered_flat_map`, respectively, with "
"the crucial difference that iterators are not provided due to their inherent "
"problems in concurrent scenarios (high contention, prone to deadlocking): "
"so, Boost.Unordered concurrent containers are technically not models of "
"https://en.cppreference.com/w/cpp/named_req/Container[Container^], although "
"they meet all the requirements of https://en.cppreference.com/w/cpp/"
"named_req/AllocatorAwareContainer[AllocatorAware^] containers (including "
"https://en.cppreference.com/w/cpp/named_req/Allocator#Fancy_pointers[fancy "
"pointer^] support) except those implying iterators."

#: :104
#, read-only, safe-html, strict-same
msgid ""
"In a non-concurrent unordered container, iterators serve two main purposes:"
msgstr ""
"In a non-concurrent unordered container, iterators serve two main purposes:"

#: :106
#, read-only, safe-html, strict-same
msgid "Access to an element previously located via lookup."
msgstr "Access to an element previously located via lookup."

#: :107
#, read-only, safe-html, strict-same
msgid "Container traversal."
msgstr "Container traversal."

#: :109
#, read-only, safe-html, strict-same
msgid ""
"In place of iterators, Boost.Unordered concurrent containers use _internal "
"visitation_ facilities as a thread-safe substitute. Classical operations "
"returning an iterator to an element already existing in the container, like "
"for instance:"
msgstr ""
"In place of iterators, Boost.Unordered concurrent containers use _internal "
"visitation_ facilities as a thread-safe substitute. Classical operations "
"returning an iterator to an element already existing in the container, like "
"for instance:"

#: :119
#, read-only, safe-html, strict-same
msgid ""
"are transformed to accept a _visitation function_ that is passed such "
"element:"
msgstr ""
"are transformed to accept a _visitation function_ that is passed such "
"element:"

#: :127
#, read-only, safe-html, strict-same
msgid ""
"(In the second case `f` is only invoked if there's an equivalent element to "
"`obj` in the table, not if insertion is successful). Container traversal is "
"served by:"
msgstr ""
"(In the second case `f` is only invoked if there's an equivalent element to "
"`obj` in the table, not if insertion is successful). Container traversal is "
"served by:"

#: :136
#, read-only, safe-html, strict-same
msgid ""
"of which there are parallelized versions in C++17 compilers with parallel "
"algorithm support. In general, the interface of concurrent containers is "
"derived from that of their non-concurrent counterparts by a fairly "
"straightforward process of replacing iterators with visitation where "
"applicable. If for regular maps `iterator` and `const_iterator` provide "
"mutable and const access to elements, respectively, here visitation is "
"granted mutable or const access depending on the constness of the member "
"function used (there are also `*cvisit` overloads for explicit const "
"visitation); In the case of `boost::concurrent_flat_set`, visitation is "
"always const."
msgstr ""
"of which there are parallelized versions in C++17 compilers with parallel "
"algorithm support. In general, the interface of concurrent containers is "
"derived from that of their non-concurrent counterparts by a fairly "
"straightforward process of replacing iterators with visitation where "
"applicable. If for regular maps `iterator` and `const_iterator` provide "
"mutable and const access to elements, respectively, here visitation is "
"granted mutable or const access depending on the constness of the member "
"function used (there are also `*cvisit` overloads for explicit const "
"visitation); In the case of `boost::concurrent_flat_set`, visitation is "
"always const."

#: :145
#, read-only, safe-html, strict-same
msgid ""
"One notable operation not provided by `boost::concurrent_flat_map`/"
"`boost::concurrent_node_map` is `operator[]`/`at`, which can be replaced, if "
"in a more convoluted manner, by `xref:reference/"
"concurrent_flat_map.adoc#concurrent_flat_map_try_emplace_or_cvisit[try_emplace_or_visit]`."
msgstr ""
"One notable operation not provided by `boost::concurrent_flat_map`/"
"`boost::concurrent_node_map` is `operator[]`/`at`, which can be replaced, if "
"in a more convoluted manner, by `xref:reference/"
"concurrent_flat_map.adoc#concurrent_flat_map_try_emplace_or_cvisit[try_emplace_or_visit]`."
