Skip to content

Translations update from Boost-Weblate#1

Open
whisper67265 wants to merge 145 commits intolocal-zh_Hansfrom
translation-zh_Hans-boost-1.90.0
Open

Translations update from Boost-Weblate#1
whisper67265 wants to merge 145 commits intolocal-zh_Hansfrom
translation-zh_Hans-boost-1.90.0

Conversation

@whisper67265
Copy link
Copy Markdown
Collaborator

@whisper67265 whisper67265 commented Apr 23, 2026

Translations update from Boost-Weblate for Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Nav (adoc).

Current translation status:

Weblate translation status

Summary by CodeRabbit

  • Documentation
    • Added a full Simplified Chinese documentation suite: introduction, rationale, compliance, debuggability, benchmarks, bibliography, and changelog.
    • Published comprehensive Chinese API reference and header overviews for node/flat/concurrent unordered containers, forward headers, PMR aliases, stats and hash-traits.
    • Added user guides on hash/equality, hash-quality diagnostics, concurrency visitation patterns, benchmarks, and debug/serialization guidance.

Boost-Weblate Admin added 30 commits April 23, 2026 21:15
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

Note

Due to the large number of review comments, Critical severity comments were prioritized as inline comments.

🟠 Major comments (16)
doc/modules/ROOT/pages/reference/header_unordered_set_top_zh_Hans.adoc-1-1 (1)

1-1: ⚠️ Potential issue | 🟠 Major

Fix the anchor ID - remove erroneous "fwd".

The anchor ID on line 1 is header_unordered_set_fwd_top, but this page documents the top-level convenience header <boost/unordered_set.hpp>, not a forward-declaration header. The anchor should match the :idprefix: on line 4 and should not contain "fwd".

This mismatch will break cross-references and cause navigation issues in the generated documentation.

🔧 Proposed fix to correct the anchor ID
-[`#header_unordered_set_fwd_top`]
+[`#header_unordered_set_top`]
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/header_unordered_set_top_zh_Hans.adoc` at
line 1, The anchor ID header_unordered_set_fwd_top is incorrect (contains "fwd")
and must be changed to match the page's :idprefix: and actual header; update the
anchor to header_unordered_set_top so it reflects the top-level convenience
header <boost/unordered_set.hpp> and restores correct cross-references (search
for the existing anchor header_unordered_set_fwd_top and replace it with
header_unordered_set_top).
doc/modules/ROOT/pages/reference/header_unordered_map_top_zh_Hans.adoc-1-1 (1)

1-1: ⚠️ Potential issue | 🟠 Major

Fix the anchor ID - remove erroneous "fwd".

The anchor ID is header_unordered_map_fwd_top, but this page documents the top-level convenience header <boost/unordered_map.hpp>, not a forward-declaration header. The anchor should be header_unordered_map_top to match the :idprefix: on line 4 and accurately reflect the page content.

This is the same issue found in header_unordered_set_top_zh_Hans.adoc and will cause broken cross-references.

🔧 Proposed fix to correct the anchor ID
-[`#header_unordered_map_fwd_top`]
+[`#header_unordered_map_top`]
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/header_unordered_map_top_zh_Hans.adoc` at
line 1, Change the anchor ID at the top of the page from
header_unordered_map_fwd_top to header_unordered_map_top so it matches the
:idprefix: and the documented header <boost/unordered_map.hpp>; locate and
update the tag [`#header_unordered_map_fwd_top`] to [`#header_unordered_map_top`]
(also check for the same erroneous "fwd" anchor in
header_unordered_set_top_zh_Hans.adoc and fix it similarly).
doc/modules/ROOT/pages/ref_zh_Hans.adoc-1-39 (1)

1-39: ⚠️ Potential issue | 🟠 Major

Update all xref targets in ref_zh_Hans.adoc to reference Chinese documentation.

All 39 xref links in this Chinese index page currently point to English reference files. The xrefs must include the _zh_Hans suffix to navigate users to the translated Chinese documentation. For example:

  • Change xref:reference/header_unordered_map_fwd.adoc to xref:reference/header_unordered_map_fwd_zh_Hans.adoc
  • Change xref:reference/header_unordered_map_top.adoc to xref:reference/header_unordered_map_top_zh_Hans.adoc
  • Apply the same pattern to all other targets

The Chinese reference files with _zh_Hans suffix already exist and are properly translated.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/ref_zh_Hans.adoc` around lines 1 - 39, The xref
targets in ref_zh_Hans.adoc point to English files; update every xref target
(e.g., reference/header_unordered_map_fwd.adoc,
reference/header_unordered_map_top.adoc, reference/unordered_map.adoc,
reference/unordered_multimap.adoc, etc.) to use the Chinese filenames by
appending _zh_Hans before the .adoc extension (for example change
reference/header_unordered_map_fwd.adoc →
reference/header_unordered_map_fwd_zh_Hans.adoc and
reference/header_unordered_map_top.adoc →
reference/header_unordered_map_top_zh_Hans.adoc), and apply this same suffix
change consistently to all xref entries in ref_zh_Hans.adoc.
doc/modules/ROOT/nav_zh_Hans.adoc-1-51 (1)

1-51: ⚠️ Potential issue | 🟠 Major

Fix xref links to reference localized pages

The navigation file nav_zh_Hans.adoc references non-localized pages without the _zh_Hans suffix. All xref links should point to Chinese localized versions:

  • Change xref:intro.adoc[...]xref:intro_zh_Hans.adoc[...]
  • Change xref:buckets.adoc[...]xref:buckets_zh_Hans.adoc[...]
  • Apply this pattern to all 51+ pages and reference pages

Localized versions with the _zh_Hans suffix exist for every page in the navigation. Without this fix, Chinese readers are redirected to English documentation despite using the Chinese navigation menu.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/nav_zh_Hans.adoc` around lines 1 - 51, The nav_zh_Hans.adoc
xref entries point to non-localized filenames (e.g., xref:intro.adoc,
xref:buckets.adoc and all reference xref:reference/*.adoc entries); update each
xref target to its Chinese localized counterpart by appending _zh_Hans before
.adoc (e.g., xref:intro_zh_Hans.adoc, xref:buckets_zh_Hans.adoc and
xref:reference/header_unordered_map_fwd_zh_Hans.adoc etc.), and apply this
rename consistently for every xref in the file so all links reference the
existing localized pages.
doc/modules/ROOT/pages/reference/unordered_flat_map_zh_Hans.adoc-801-803 (1)

801-803: ⚠️ Potential issue | 🟠 Major

Remove mention of "bool component" from Returns documentation for hint-based overloads.

The declarations show these functions return iterator only:

  • emplace_hint: template<class... Args> iterator emplace_hint(const_iterator position, Args&&... args);
  • insert (copy hint): iterator insert(const_iterator hint, const value_type& obj);
  • insert (move hint): iterator insert(const_iterator hint, value_type&& obj);

However, the documentation at lines 801-803, 864-867, and 887-889 states: "The bool component of the return type is true if an insert took place." This contradicts the declared return type of iterator and misleads developers. Rewrite the Returns sections to describe only the iterator behavior (e.g., "Returns an iterator to the newly inserted element if an insert took place, otherwise to the element with equivalent key.").

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/unordered_flat_map_zh_Hans.adoc` around
lines 801 - 803, The Returns documentation incorrectly mentions a "bool
component" for the hint-based overloads; update the Returns text for
emplace_hint, insert(const_iterator hint, const value_type&), and
insert(const_iterator hint, value_type&&) to remove any reference to a bool and
state only the iterator behavior: "Returns an iterator to the newly inserted
element if an insert took place, otherwise an iterator to the element with an
equivalent key." Ensure this revised sentence replaces the existing multi-line
Returns paragraphs that refer to a bool component.
doc/modules/ROOT/pages/reference/concurrent_node_map_zh_Hans.adoc-75-78 (1)

75-78: ⚠️ Potential issue | 🟠 Major

Missing comma breaks documented constructor signatures.

At lines 75-78 and 621-624, the size_type n = _implementation-defined_ parameter is missing a trailing comma before const hasher& hf, making the C++ declarations invalid. Both instances of the initializer list constructor have this syntax error.

Suggested fix
 concurrent_node_map(std::initializer_list<value_type> il,
-                    size_type n = _implementation-defined_
-                    const hasher& hf = hasher(),
+                    size_type n = _implementation-defined_,
+                    const hasher& hf = hasher(),
                     const key_equal& eql = key_equal(),
                     const allocator_type& a = allocator_type());
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_node_map_zh_Hans.adoc` around
lines 75 - 78, The documented constructor signatures for concurrent_node_map
have a missing comma after the parameter "size_type n =
_implementation-defined_" which breaks the C++ declaration; update both
initializer-list constructor signatures (the ones that include "size_type n =
_implementation-defined_", "const hasher& hf = hasher()", "const key_equal& eql
= key_equal()", "const allocator_type& a = allocator_type()") by inserting a
trailing comma immediately after the "size_type n = _implementation-defined_"
parameter so the parameter list is syntactically valid.
doc/modules/ROOT/pages/reference/unordered_multiset_zh_Hans.adoc-75-77 (1)

75-77: ⚠️ Potential issue | 🟠 Major

Missing declaration terminator in constructor synopsis.

Line 75 ends the constructor declaration with ) instead of );, creating a syntax inconsistency with the following declaration at lines 76-77 which correctly terminates with a semicolon.

Suggested fix
    xref:`#unordered_multiset_initializer_list_constructor_with_bucket_count_and_allocator`[unordered_multiset](std::initializer_list<value_type> il, size_type n,
-                       const allocator_type& a)
+                       const allocator_type& a);
    xref:`#unordered_multiset_initializer_list_constructor_with_bucket_count_and_hasher_and_allocator`[unordered_multiset](std::initializer_list<value_type> il, size_type n, const hasher& hf,
                       const allocator_type& a);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/unordered_multiset_zh_Hans.adoc` around
lines 75 - 77, The constructor synopsis for unordered_multiset that starts with
"const allocator_type& a)" is missing its terminating semicolon; update the
declaration for the initializer-list constructor (the line ending in ")") to end
with ");" so it matches the following declaration style and completes the
declaration for
unordered_multiset_initializer_list_constructor_with_bucket_count_and_hasher_and_allocator.
doc/modules/ROOT/pages/reference/unordered_multiset_zh_Hans.adoc-895-896 (1)

895-896: ⚠️ Potential issue | 🟠 Major

Fix insert(initializer_list) documentation to allow duplicate keys.

The insert(initializer_list<value_type> il) method documentation incorrectly states that "Elements are inserted if and only if there is no element in the container with an equivalent key." This contradicts the fundamental semantics of unordered_multiset, which explicitly allows multiple elements with equivalent keys. Compare this to insert(iterator_range), which correctly allows duplicates. Remove the key uniqueness restriction to match multiset behavior.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/unordered_multiset_zh_Hans.adoc` around
lines 895 - 896, The documentation for
unordered_multiset::insert(initializer_list<value_type> il) wrongly enforces
unique-key semantics; update the text for insert(initializer_list<value_type>
il) to match unordered_multiset behavior (duplicates allowed) by removing the
phrase "Elements are inserted if and only if there is no element in the
container with an equivalent key" and replacing it with a statement that all
elements from the initializer_list are inserted and that equivalent keys
(duplicates) are permitted, consistent with
unordered_multiset::insert(iterator_range).
doc/modules/ROOT/pages/reference/concurrent_node_map_zh_Hans.adoc-1242-1245 (1)

1242-1245: ⚠️ Potential issue | 🟠 Major

Fix incorrect function names and parameter typo in "Insert Iterator Range and Visit" section.

Lines 1242-1244 document insert_or_visit and insert_or_cvisit with two callback parameters, but these should be insert_and_visit and insert_and_cvisit (consistent with the two-callback pattern used in "Insert Initializer List and Visit"). Additionally, the second function has a parameter typo: F1 f2 should be F1 f1.

Suggested fix
 template<class InputIterator, class F1, class F2>
-    size_type insert_or_visit(InputIterator first, InputIterator last, F1 f1, F2 f2);
+    size_type insert_and_visit(InputIterator first, InputIterator last, F1 f1, F2 f2);
 template<class InputIterator, class F1, class F2>
-    size_type insert_or_cvisit(InputIterator first, InputIterator last, F1 f2, F2 f2);
+    size_type insert_and_cvisit(InputIterator first, InputIterator last, F1 f1, F2 f2);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_node_map_zh_Hans.adoc` around
lines 1242 - 1245, Update the documented function signatures in the "Insert
Iterator Range and Visit" section: rename insert_or_visit to insert_and_visit
and insert_or_cvisit to insert_and_cvisit to match the two-callback naming
pattern, and fix the parameter typo in the second signature by changing the
incorrect parameter declaration F1 f2 to F1 f1 so the templates read
consistently (reference the symbols insert_or_visit, insert_or_cvisit,
insert_and_visit, insert_and_cvisit and the parameter types F1/F2 when locating
the lines to change).
doc/modules/ROOT/pages/reference/concurrent_node_set_zh_Hans.adoc-1231-1232 (1)

1231-1232: ⚠️ Potential issue | 🟠 Major

Fix template parameter typo in overload declaration

Line 1231 uses class f2 (lowercase type parameter), inconsistent with the surrounding declaration (F2). This should be class F2.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_node_set_zh_Hans.adoc` around
lines 1231 - 1232, The template declaration for insert_and_cvisit has a
lowercase type parameter typo; update the template parameter list so the third
parameter is declared as class F2 (matching the rest of the code) — locate the
template<class InputIterator, class F1, class f2> line and change the parameter
name to F2 so it matches the function signature insert_and_cvisit(InputIterator
first, InputIterator last, F1 f1, F2 f2).
doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc-67-70 (1)

67-70: ⚠️ Potential issue | 🟠 Major

Correct invalid constructor signatures (missing comma)

Both initializer-list constructor declarations are missing a comma after size_type n = _implementation-defined_ (Line 67 and Line 517). That currently renders the documented API signature invalid.

Proposed fix
-    xref:`#concurrent_flat_set_initializer_list_constructor`[concurrent_flat_set](std::initializer_list<value_type> il,
-                        size_type n = _implementation-defined_
+    xref:`#concurrent_flat_set_initializer_list_constructor`[concurrent_flat_set](std::initializer_list<value_type> il,
+                        size_type n = _implementation-defined_,
                         const hasher& hf = hasher(),
                         const key_equal& eql = key_equal(),
                         const allocator_type& a = allocator_type());
-concurrent_flat_set(std::initializer_list<value_type> il,
-                    size_type n = _implementation-defined_
+concurrent_flat_set(std::initializer_list<value_type> il,
+                    size_type n = _implementation-defined_,
                     const hasher& hf = hasher(),
                     const key_equal& eql = key_equal(),
                     const allocator_type& a = allocator_type());

Also applies to: 517-520

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc` around
lines 67 - 70, The initializer-list constructor declarations for
concurrent_flat_set (the signatures containing "size_type n =
_implementation-defined_" followed by "const hasher& hf = hasher(), const
key_equal& eql = key_equal(), const allocator_type& a = allocator_type()") are
missing a comma after the size_type parameter; update both occurrences (the
initializer-list constructor declarations around the existing "size_type n =
_implementation-defined_" and the matching one later) to insert a comma
immediately after that parameter so the parameter list reads "size_type n =
_implementation-defined_," before the hasher parameter, ensuring the constructor
signatures are valid.
doc/modules/ROOT/pages/reference/concurrent_node_set_zh_Hans.adoc-1180-1185 (1)

1180-1185: ⚠️ Potential issue | 🟠 Major

Fix parameter and callback name typos in copy insert_and_[c]visit

Line 1180 has F1 f2 in the second overload (should be F1 f1), and Line 1184 says “invokes f” (should be f2).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_node_set_zh_Hans.adoc` around
lines 1180 - 1185, The doc has two typos: in the second template overload
declaration for insert_and_cvisit change the parameter name from F1 f2 to F1 f1
so the signatures read consistently (template<class F1, class F2> bool
insert_and_cvisit(const value_type& obj, F1 f1, F2 f2)); and update the prose
that currently says “invokes `f`” to explicitly reference `f2` for the case that
an equivalent element exists (so the text describes invoking f1 for newly
created element and f2 for the existing element).
doc/modules/ROOT/pages/reference/concurrent_node_set_zh_Hans.adoc-200-201 (1)

200-201: ⚠️ Potential issue | 🟠 Major

Fix wrong xref anchor for extract_if overload

Line 201 links extract_if to #concurrent_node_set_extract; this should target the extract_if anchor to avoid broken/wrong intra-page navigation.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_node_set_zh_Hans.adoc` around
lines 200 - 201, The second template declaration currently links extract_if to
the wrong anchor (`#concurrent_node_set_extract`); update the xref for the
overload so both lines point to the extract_if anchor (use
`#concurrent_node_set_extract_if`) — adjust the xref on the line with
"template<class K, class F> node_type
xref:`#concurrent_node_set_extract`[extract_if](const K& k, F f);" so it
references `#concurrent_node_set_extract_if` like the first declaration does.
doc/modules/ROOT/pages/reference/concurrent_node_set_zh_Hans.adoc-1161-1164 (1)

1161-1164: ⚠️ Potential issue | 🟠 Major

Correct function names in emplace_and_[c]visit section

Line 1161-Line 1164 currently declare emplace_or_visit/emplace_or_cvisit, which conflicts with the section and synopsis (emplace_and_*). Please rename these declarations to emplace_and_visit and emplace_and_cvisit.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_node_set_zh_Hans.adoc` around
lines 1161 - 1164, The declarations currently use the wrong names
emplace_or_visit and emplace_or_cvisit; update those function declarations to
emplace_and_visit and emplace_and_cvisit respectively so they match the
emplace_and_[c]visit section and synopsis (change the template lines that
reference emplace_or_visit and emplace_or_cvisit to use emplace_and_visit and
emplace_and_cvisit).
doc/modules/ROOT/pages/reference/concurrent_flat_map_zh_Hans.adoc-1169-1172 (1)

1169-1172: ⚠️ Potential issue | 🟠 Major

Use the correct API names in “Insert Iterator Range and Visit”

Under this section, Line 1169-Line 1172 currently declare insert_or_visit/insert_or_cvisit, but this block should document the insert_and_visit/insert_and_cvisit overloads.

Proposed fix
 template<class InputIterator, class F1, class F2>
-    size_type insert_or_visit(InputIterator first, InputIterator last, F1 f1, F2 f2);
+    size_type insert_and_visit(InputIterator first, InputIterator last, F1 f1, F2 f2);
 template<class InputIterator, class F1, class F2>
-    size_type insert_or_cvisit(InputIterator first, InputIterator last, F1 f1, F2 f2);
+    size_type insert_and_cvisit(InputIterator first, InputIterator last, F1 f1, F2 f2);
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_flat_map_zh_Hans.adoc` around
lines 1169 - 1172, The documentation uses incorrect API names: replace the
declarations of insert_or_visit and insert_or_cvisit with the correct overload
names insert_and_visit and insert_and_cvisit in the "Insert Iterator Range and
Visit" block; update both the plain and the template declarations so the
signatures read size_type insert_and_visit(InputIterator first, InputIterator
last, F1 f1, F2 f2); and template<class InputIterator, class F1, class F2>
size_type insert_and_cvisit(InputIterator first, InputIterator last, F1 f1, F2
f2); ensuring the symbol names match the actual API.
doc/modules/ROOT/pages/compliance_zh_Hans.adoc-48-48 (1)

48-48: ⚠️ Potential issue | 🟠 Major

Fix C++11 version number and remove non-existent standard container references

Line 48: Change C++1 to C++11.

Line 65: The reference to std::unordered_flat_set and std::unordered_flat_map is incorrect—these containers do not exist in the C++ standard library. They are Boost-specific. Update to reference the actual standard library unordered containers (std::unordered_set and std::unordered_map) or clarify the modeling is based on Boost containers instead.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/compliance_zh_Hans.adoc` at line 48, Update the C++
version token "C{plus}{plus}1" to "C{plus}{plus}11" in the Boost.Unordered
description and remove or correct references to non-standard containers
"std::unordered_flat_set" and "std::unordered_flat_map": either replace them
with the standard containers "std::unordered_set" and "std::unordered_map" or
explicitly state that the flat variants are Boost-provided types (e.g., refer to
Boost.Unordered's unordered_flat_set/unordered_flat_map) so the text no longer
implies those types exist in the C++ standard library.
🟡 Minor comments (9)
doc/modules/ROOT/pages/changes_zh_Hans.adoc-229-229 (1)

229-229: ⚠️ Potential issue | 🟡 Minor

Typo in changelog intro sentence.

Line 229 has 本本次; this should be 本次.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/changes_zh_Hans.adoc` at line 229, Fix the typo where
the changelog intro reads "本本次" — replace the duplicated character with "本次" in
the changes_zh_Hans.adoc entry (the sentence containing "本本次为重大更新:容器已改用
Boost.Move 的移动操作模拟实现...") so the sentence begins "本次为重大更新:...".
doc/modules/ROOT/pages/reference/header_unordered_node_map_fwd_zh_Hans.adoc-6-6 (1)

6-6: ⚠️ Potential issue | 🟡 Minor

Localized page links should target localized references.

Line 6 links to header_unordered_node_map.adoc. If header_unordered_node_map_zh_Hans.adoc exists, point to that instead to avoid language switching in zh_Hans navigation.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/header_unordered_node_map_fwd_zh_Hans.adoc`
at line 6, Update the xref in the forward-declaration file so it points to the
localized page instead of the English one: replace the link target
`reference/header_unordered_node_map.adoc` with
`reference/header_unordered_node_map_zh_Hans.adoc` (or conditionally use the
localized file if it exists) so the xref in this file uses the same zh_Hans
localization and avoids switching languages in navigation.
doc/modules/ROOT/pages/reference/header_unordered_node_set_fwd_zh_Hans.adoc-2-6 (1)

2-6: ⚠️ Potential issue | 🟡 Minor

This zh_Hans page is still mostly untranslated.

Line 2 (“Synopsis”) and Line 6 (“Forward declares...”) are English; please translate them to match the locale of this document set.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/header_unordered_node_set_fwd_zh_Hans.adoc`
around lines 2 - 6, Translate the two remaining English strings in
header_unordered_node_set_fwd_zh_Hans.adoc to Simplified Chinese: replace the
heading "Synopsis" with the Chinese equivalent (e.g., "概要" or "概述") and
translate the sentence "Forward declares all the definitions in
xref:reference/header_unordered_node_set.adoc[`<boost/unordered/unordered_node_set.hpp>`]."
into Chinese while preserving the xref link and the code tag
`<boost/unordered/unordered_node_set.hpp>`; update the text so the locale
matches the rest of the zh_Hans document.
doc/modules/ROOT/pages/reference/header_unordered_set_fwd_zh_Hans.adoc-6-6 (1)

6-6: ⚠️ Potential issue | 🟡 Minor

Cross-reference should stay in zh_Hans docs when possible.

Line 6 links to header_unordered_set.adoc; if localized page exists, use header_unordered_set_zh_Hans.adoc to keep language continuity.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/header_unordered_set_fwd_zh_Hans.adoc` at
line 6, Update the cross-reference in header_unordered_set_fwd_zh_Hans.adoc so
it points to the localized page reference/header_unordered_set_zh_Hans.adoc
instead of reference/header_unordered_set.adoc (change the xref target used in
the link `reference/header_unordered_set.adoc`), and if the localized file does
not exist ensure there is a fallback or create
reference/header_unordered_set_zh_Hans.adoc so the zh_Hans page keeps language
continuity.
doc/modules/ROOT/pages/reference/header_unordered_map_fwd_zh_Hans.adoc-6-6 (1)

6-6: ⚠️ Potential issue | 🟡 Minor

Prefer linking to localized counterpart pages.

Line 6 currently targets header_unordered_map.adoc; if header_unordered_map_zh_Hans.adoc exists, link there so users stay in Chinese docs.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/header_unordered_map_fwd_zh_Hans.adoc` at
line 6, Update the cross-reference in header_unordered_map_fwd_zh_Hans.adoc so
it points to the Chinese localized page instead of the English one: replace the
target xref:reference/header_unordered_map.adoc with
xref:reference/header_unordered_map_zh_Hans.adoc (and if that localized file is
not present, keep the original as a fallback); ensure the existing link text and
formatting around the `++<++boost/unordered/unordered++_++map.hpp++>++` token
remain unchanged.
doc/modules/ROOT/pages/reference/header_unordered_node_set_zh_Hans.adoc-2-40 (1)

2-40: ⚠️ Potential issue | 🟡 Minor

Keep language consistent within zh_Hans pages.

This section mixes Chinese and English labels/comments (e.g., “Synopsis”, “Pmr aliases (C++17 and up)”). Please localize these strings to keep the page consistently zh_Hans.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/header_unordered_node_set_zh_Hans.adoc`
around lines 2 - 40, The file mixes Chinese and English labels; change the
English headings/labels to Simplified Chinese: replace "Synopsis" with a zh_Hans
equivalent (e.g., "概要" or "摘要") and localize "Pmr aliases (C++17 and up)" to a
Chinese phrase indicating PMR 别名及其适用的 C++ 版本 (e.g., "Pmr 别名(C++17 及更高)"); keep
the rest of the Chinese comments intact and ensure any other English labels in
the same block (such as listing captions or inline English comments) are
similarly translated so the page is consistently zh_Hans while preserving
identifiers like unordered_node_set, operator==, swap, and erase_if.
doc/modules/ROOT/pages/reference/concurrent_node_map_zh_Hans.adoc-1498-1500 (1)

1498-1500: ⚠️ Potential issue | 🟡 Minor

Remove erroneous ExecutionPolicy check from erase_if by Key notes.

At lines 1498-1499, the notes incorrectly include std::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> for the template<class K, class F> overload. This constraint does not apply—neither overload in the "erase_if by Key" section has an ExecutionPolicy parameter. This text should be removed; the correct ExecutionPolicy constraint belongs only in the separate "Parallel erase_if" section (lines 1519+).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_node_map_zh_Hans.adoc` around
lines 1498 - 1500, Remove the incorrect ExecutionPolicy constraint from the
"erase_if by Key" notes: in the paragraph describing the template<class K, class
F> overload for erase_if by Key, delete the phrase that says the overload only
participates when
std::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> is false;
instead leave the text stating that the overload requires Hash::is_transparent
and Pred::is_transparent (and that Hash must be callable with both K and Key to
enable heterogeneous lookup). Ensure the ExecutionPolicy constraint remains only
in the separate "Parallel erase_if" section.
doc/modules/ROOT/pages/concurrent_zh_Hans.adoc-223-223 (1)

223-223: ⚠️ Potential issue | 🟡 Minor

Fix typo in table title text

Line 223 has a spelling error: interoperatibilityinteroperability.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/concurrent_zh_Hans.adoc` at line 223, Update the table
title string in the caption definition to fix the spelling mistake: replace
"Concurrent/non-concurrent interoperatibility" with "Concurrent/non-concurrent
interoperability" in the caption entry (the line containing [caption=",", 
title='Table {counter:table-counter}. Concurrent/non-concurrent
interoperatibility']).
doc/modules/ROOT/pages/reference/header_concurrent_flat_map_zh_Hans.adoc-50-50 (1)

50-50: ⚠️ Potential issue | 🟡 Minor

Fix malformed namespace comment

Line 50 has a corrupted comment: // 命名空间 pmr擦除.
Please correct it to a clean namespace-close comment (e.g., // namespace pmr / // 命名空间 pmr).

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/header_concurrent_flat_map_zh_Hans.adoc` at
line 50, Replace the malformed namespace-close comment that currently reads "//
命名空间 pmr擦除" with a clean namespace-closing comment such as "// namespace pmr"
(or the Chinese equivalent "// 命名空间 pmr") so the closing comment for the pmr
namespace is correct and not corrupted.
🧹 Nitpick comments (2)
doc/modules/ROOT/pages/copyright_zh_Hans.adoc (1)

20-20: Use HTTPS for the Boost license link.

Line 20 uses http://...; switch it to https://... for consistency and safer external linking in rendered docs.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/copyright_zh_Hans.adoc` at line 20, Update the Boost
license URL in the text string "根据Boost软件许可证1.0版分发。(详见随附文件
LICENSE++_++1++_++0.txt 或访问 http://www.boost.org/LICENSE_1_0.txt 。)" to use
HTTPS instead of HTTP so the link becomes https://www.boost.org/LICENSE_1_0.txt;
edit the literal line in copyright_zh_Hans.adoc (the sentence containing the
Boost license URL) to replace "http://" with "https://".
doc/modules/ROOT/pages/bibliography_zh_Hans.adoc (1)

7-7: Prefer HTTPS for external citation link

Line 7 uses http://www.ddj.com/.... If the target supports HTTPS, please switch to https:// to avoid mixed-content/security warnings and improve link reliability.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/bibliography_zh_Hans.adoc` at line 7, Update the
external citation URL in the bibliography entry "*
_C/C{plus}{plus}用户期刊_,2006年2月. Pete Becker.
http://www.ddj.com/cpp/184402066[STL与TR1:第三部分 — 无序容器^]" to use HTTPS; replace
"http://www.ddj.com/cpp/184402066" with "https://www.ddj.com/cpp/184402066" and
keep the surrounding AsciiDoc link text/markup intact so the entry remains "*
_C/C{plus}{plus}用户期刊_,2006年2月. Pete Becker.
https://www.ddj.com/cpp/184402066[STL与TR1:第三部分 — 无序容器^]".
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@doc/modules/ROOT/pages/hash_equality_zh_Hans.adoc`:
- Around line 1-145: The file contains English content in a Chinese-localized
document (title "Equality Predicates and Hash Functions", body text, captions,
table headers, and explanatory prose) and must be translated into Simplified
Chinese; keep all code blocks and identifiers unchanged (e.g., structs
iequal_to, ihash, point, point_hash, hash_value and method signatures like
hasher hash_function() const / key_equal key_eq() const), translate the document
title, paragraphs, captions (including the table caption and "Methods for
accessing the hash and equality functions"), notes/CAUTION text, links' visible
text, and any inline text while preserving code examples, file/example links,
and markup structure (idprefix: hash_equality_, captions, and table formatting).

In
`@doc/modules/ROOT/pages/reference/header_concurrent_flat_map_fwd_zh_Hans.adoc`:
- Around line 1-6: Replace the English phrases in this Chinese-localized file:
change the section title "Synopsis" to "概要" for the header
`<boost/unordered/concurrent_flat_map_fwd.hpp>` (id symbol
header_concurrent_flat_map_fwd) and translate the description line to Chinese —
e.g. replace "Forward declares all the definitions in
xref:reference/header_concurrent_flat_map.adoc[`<boost/unordered/concurrent_flat_map.hpp>`]."
with "前向声明
xref:reference/header_concurrent_flat_map.adoc[`<boost/unordered/concurrent_flat_map.hpp>`]
中的所有定义。" so the file content matches the `_zh_Hans` localization.

In `@doc/modules/ROOT/pages/reference/unordered_flat_map_zh_Hans.adoc`:
- Around line 80-83: The initializer-list constructor declarations for
unordered_flat_map are missing the comma after the parameter "size_type n =
_implementation-defined_"; update both initializer-list constructor signatures
to insert a comma between "size_type n = _implementation-defined_" and the next
parameter "const hasher& hf = hasher()" so the parameter list reads
"...size_type n = _implementation-defined_, const hasher& hf = hasher(), const
key_equal& eql = key_equal(), const allocator_type& a = allocator_type()".

In `@doc/modules/ROOT/pages/reference/unordered_flat_set_zh_Hans.adoc`:
- Around line 1-1387: The file unordered_flat_set_zh_Hans.adoc is in English
while it should be Simplified Chinese; translate all user-facing English text
(section headings like Synopsis, Description, Constructors, Iterators,
Modifiers, Observers, Lookup, Hash Policy, Statistics, Serialization, and
explanatory paragraphs and notes) into Chinese while preserving all code
identifiers and symbols (e.g. boost::unordered_flat_set, unordered_flat_set,
emplace, find, erase, rehash, reserve, get_stats, reset_stats), inline code
blocks, xref/link macros, examples, and formatting verbatim so references and
cross-links remain valid; ensure technical terms are correctly localized in
Simplified Chinese and that no code, signatures, macros or xref targets are
altered.

In `@doc/modules/ROOT/pages/reference/unordered_map_zh_Hans.adoc`:
- Around line 1-1944: The file unordered_map_zh_Hans.adoc contains English
documentation but is intended as Simplified Chinese; translate all English text
into Chinese while preserving technical identifiers and cross-refs (e.g. the
class template name "boost::unordered_map", constructors like "unordered_map()",
member names such as "emplace", "find", "erase", and deduction guide labels like
"__iter-key-type__"), keep all code blocks, macros
(BOOST_UNORDERED_ENABLE_SERIALIZATION_COMPATIBILITY_V0), signatures and xref
targets unchanged, and ensure sections (Template Parameters, Constructors,
Modifiers, Lookup, Bucket Interface, Hash Policy, Serialization, etc.) are fully
converted to Simplified Chinese and maintain the original formatting and
admonitions.

---

Major comments:
In `@doc/modules/ROOT/nav_zh_Hans.adoc`:
- Around line 1-51: The nav_zh_Hans.adoc xref entries point to non-localized
filenames (e.g., xref:intro.adoc, xref:buckets.adoc and all reference
xref:reference/*.adoc entries); update each xref target to its Chinese localized
counterpart by appending _zh_Hans before .adoc (e.g., xref:intro_zh_Hans.adoc,
xref:buckets_zh_Hans.adoc and
xref:reference/header_unordered_map_fwd_zh_Hans.adoc etc.), and apply this
rename consistently for every xref in the file so all links reference the
existing localized pages.

In `@doc/modules/ROOT/pages/compliance_zh_Hans.adoc`:
- Line 48: Update the C++ version token "C{plus}{plus}1" to "C{plus}{plus}11" in
the Boost.Unordered description and remove or correct references to non-standard
containers "std::unordered_flat_set" and "std::unordered_flat_map": either
replace them with the standard containers "std::unordered_set" and
"std::unordered_map" or explicitly state that the flat variants are
Boost-provided types (e.g., refer to Boost.Unordered's
unordered_flat_set/unordered_flat_map) so the text no longer implies those types
exist in the C++ standard library.

In `@doc/modules/ROOT/pages/ref_zh_Hans.adoc`:
- Around line 1-39: The xref targets in ref_zh_Hans.adoc point to English files;
update every xref target (e.g., reference/header_unordered_map_fwd.adoc,
reference/header_unordered_map_top.adoc, reference/unordered_map.adoc,
reference/unordered_multimap.adoc, etc.) to use the Chinese filenames by
appending _zh_Hans before the .adoc extension (for example change
reference/header_unordered_map_fwd.adoc →
reference/header_unordered_map_fwd_zh_Hans.adoc and
reference/header_unordered_map_top.adoc →
reference/header_unordered_map_top_zh_Hans.adoc), and apply this same suffix
change consistently to all xref entries in ref_zh_Hans.adoc.

In `@doc/modules/ROOT/pages/reference/concurrent_flat_map_zh_Hans.adoc`:
- Around line 1169-1172: The documentation uses incorrect API names: replace the
declarations of insert_or_visit and insert_or_cvisit with the correct overload
names insert_and_visit and insert_and_cvisit in the "Insert Iterator Range and
Visit" block; update both the plain and the template declarations so the
signatures read size_type insert_and_visit(InputIterator first, InputIterator
last, F1 f1, F2 f2); and template<class InputIterator, class F1, class F2>
size_type insert_and_cvisit(InputIterator first, InputIterator last, F1 f1, F2
f2); ensuring the symbol names match the actual API.

In `@doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc`:
- Around line 67-70: The initializer-list constructor declarations for
concurrent_flat_set (the signatures containing "size_type n =
_implementation-defined_" followed by "const hasher& hf = hasher(), const
key_equal& eql = key_equal(), const allocator_type& a = allocator_type()") are
missing a comma after the size_type parameter; update both occurrences (the
initializer-list constructor declarations around the existing "size_type n =
_implementation-defined_" and the matching one later) to insert a comma
immediately after that parameter so the parameter list reads "size_type n =
_implementation-defined_," before the hasher parameter, ensuring the constructor
signatures are valid.

In `@doc/modules/ROOT/pages/reference/concurrent_node_map_zh_Hans.adoc`:
- Around line 75-78: The documented constructor signatures for
concurrent_node_map have a missing comma after the parameter "size_type n =
_implementation-defined_" which breaks the C++ declaration; update both
initializer-list constructor signatures (the ones that include "size_type n =
_implementation-defined_", "const hasher& hf = hasher()", "const key_equal& eql
= key_equal()", "const allocator_type& a = allocator_type()") by inserting a
trailing comma immediately after the "size_type n = _implementation-defined_"
parameter so the parameter list is syntactically valid.
- Around line 1242-1245: Update the documented function signatures in the
"Insert Iterator Range and Visit" section: rename insert_or_visit to
insert_and_visit and insert_or_cvisit to insert_and_cvisit to match the
two-callback naming pattern, and fix the parameter typo in the second signature
by changing the incorrect parameter declaration F1 f2 to F1 f1 so the templates
read consistently (reference the symbols insert_or_visit, insert_or_cvisit,
insert_and_visit, insert_and_cvisit and the parameter types F1/F2 when locating
the lines to change).

In `@doc/modules/ROOT/pages/reference/concurrent_node_set_zh_Hans.adoc`:
- Around line 1231-1232: The template declaration for insert_and_cvisit has a
lowercase type parameter typo; update the template parameter list so the third
parameter is declared as class F2 (matching the rest of the code) — locate the
template<class InputIterator, class F1, class f2> line and change the parameter
name to F2 so it matches the function signature insert_and_cvisit(InputIterator
first, InputIterator last, F1 f1, F2 f2).
- Around line 1180-1185: The doc has two typos: in the second template overload
declaration for insert_and_cvisit change the parameter name from F1 f2 to F1 f1
so the signatures read consistently (template<class F1, class F2> bool
insert_and_cvisit(const value_type& obj, F1 f1, F2 f2)); and update the prose
that currently says “invokes `f`” to explicitly reference `f2` for the case that
an equivalent element exists (so the text describes invoking f1 for newly
created element and f2 for the existing element).
- Around line 200-201: The second template declaration currently links
extract_if to the wrong anchor (`#concurrent_node_set_extract`); update the xref
for the overload so both lines point to the extract_if anchor (use
`#concurrent_node_set_extract_if`) — adjust the xref on the line with
"template<class K, class F> node_type
xref:`#concurrent_node_set_extract`[extract_if](const K& k, F f);" so it
references `#concurrent_node_set_extract_if` like the first declaration does.
- Around line 1161-1164: The declarations currently use the wrong names
emplace_or_visit and emplace_or_cvisit; update those function declarations to
emplace_and_visit and emplace_and_cvisit respectively so they match the
emplace_and_[c]visit section and synopsis (change the template lines that
reference emplace_or_visit and emplace_or_cvisit to use emplace_and_visit and
emplace_and_cvisit).

In `@doc/modules/ROOT/pages/reference/header_unordered_map_top_zh_Hans.adoc`:
- Line 1: Change the anchor ID at the top of the page from
header_unordered_map_fwd_top to header_unordered_map_top so it matches the
:idprefix: and the documented header <boost/unordered_map.hpp>; locate and
update the tag [`#header_unordered_map_fwd_top`] to [`#header_unordered_map_top`]
(also check for the same erroneous "fwd" anchor in
header_unordered_set_top_zh_Hans.adoc and fix it similarly).

In `@doc/modules/ROOT/pages/reference/header_unordered_set_top_zh_Hans.adoc`:
- Line 1: The anchor ID header_unordered_set_fwd_top is incorrect (contains
"fwd") and must be changed to match the page's :idprefix: and actual header;
update the anchor to header_unordered_set_top so it reflects the top-level
convenience header <boost/unordered_set.hpp> and restores correct
cross-references (search for the existing anchor header_unordered_set_fwd_top
and replace it with header_unordered_set_top).

In `@doc/modules/ROOT/pages/reference/unordered_flat_map_zh_Hans.adoc`:
- Around line 801-803: The Returns documentation incorrectly mentions a "bool
component" for the hint-based overloads; update the Returns text for
emplace_hint, insert(const_iterator hint, const value_type&), and
insert(const_iterator hint, value_type&&) to remove any reference to a bool and
state only the iterator behavior: "Returns an iterator to the newly inserted
element if an insert took place, otherwise an iterator to the element with an
equivalent key." Ensure this revised sentence replaces the existing multi-line
Returns paragraphs that refer to a bool component.

In `@doc/modules/ROOT/pages/reference/unordered_multiset_zh_Hans.adoc`:
- Around line 75-77: The constructor synopsis for unordered_multiset that starts
with "const allocator_type& a)" is missing its terminating semicolon; update the
declaration for the initializer-list constructor (the line ending in ")") to end
with ");" so it matches the following declaration style and completes the
declaration for
unordered_multiset_initializer_list_constructor_with_bucket_count_and_hasher_and_allocator.
- Around line 895-896: The documentation for
unordered_multiset::insert(initializer_list<value_type> il) wrongly enforces
unique-key semantics; update the text for insert(initializer_list<value_type>
il) to match unordered_multiset behavior (duplicates allowed) by removing the
phrase "Elements are inserted if and only if there is no element in the
container with an equivalent key" and replacing it with a statement that all
elements from the initializer_list are inserted and that equivalent keys
(duplicates) are permitted, consistent with
unordered_multiset::insert(iterator_range).

---

Minor comments:
In `@doc/modules/ROOT/pages/changes_zh_Hans.adoc`:
- Line 229: Fix the typo where the changelog intro reads "本本次" — replace the
duplicated character with "本次" in the changes_zh_Hans.adoc entry (the sentence
containing "本本次为重大更新:容器已改用 Boost.Move 的移动操作模拟实现...") so the sentence begins
"本次为重大更新:...".

In `@doc/modules/ROOT/pages/concurrent_zh_Hans.adoc`:
- Line 223: Update the table title string in the caption definition to fix the
spelling mistake: replace "Concurrent/non-concurrent interoperatibility" with
"Concurrent/non-concurrent interoperability" in the caption entry (the line
containing [caption=",",  title='Table {counter:table-counter}.
Concurrent/non-concurrent interoperatibility']).

In `@doc/modules/ROOT/pages/reference/concurrent_node_map_zh_Hans.adoc`:
- Around line 1498-1500: Remove the incorrect ExecutionPolicy constraint from
the "erase_if by Key" notes: in the paragraph describing the template<class K,
class F> overload for erase_if by Key, delete the phrase that says the overload
only participates when
std::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> is false;
instead leave the text stating that the overload requires Hash::is_transparent
and Pred::is_transparent (and that Hash must be callable with both K and Key to
enable heterogeneous lookup). Ensure the ExecutionPolicy constraint remains only
in the separate "Parallel erase_if" section.

In `@doc/modules/ROOT/pages/reference/header_concurrent_flat_map_zh_Hans.adoc`:
- Line 50: Replace the malformed namespace-close comment that currently reads
"// 命名空间 pmr擦除" with a clean namespace-closing comment such as "// namespace
pmr" (or the Chinese equivalent "// 命名空间 pmr") so the closing comment for the
pmr namespace is correct and not corrupted.

In `@doc/modules/ROOT/pages/reference/header_unordered_map_fwd_zh_Hans.adoc`:
- Line 6: Update the cross-reference in header_unordered_map_fwd_zh_Hans.adoc so
it points to the Chinese localized page instead of the English one: replace the
target xref:reference/header_unordered_map.adoc with
xref:reference/header_unordered_map_zh_Hans.adoc (and if that localized file is
not present, keep the original as a fallback); ensure the existing link text and
formatting around the `++<++boost/unordered/unordered++_++map.hpp++>++` token
remain unchanged.

In `@doc/modules/ROOT/pages/reference/header_unordered_node_map_fwd_zh_Hans.adoc`:
- Line 6: Update the xref in the forward-declaration file so it points to the
localized page instead of the English one: replace the link target
`reference/header_unordered_node_map.adoc` with
`reference/header_unordered_node_map_zh_Hans.adoc` (or conditionally use the
localized file if it exists) so the xref in this file uses the same zh_Hans
localization and avoids switching languages in navigation.

In `@doc/modules/ROOT/pages/reference/header_unordered_node_set_fwd_zh_Hans.adoc`:
- Around line 2-6: Translate the two remaining English strings in
header_unordered_node_set_fwd_zh_Hans.adoc to Simplified Chinese: replace the
heading "Synopsis" with the Chinese equivalent (e.g., "概要" or "概述") and
translate the sentence "Forward declares all the definitions in
xref:reference/header_unordered_node_set.adoc[`<boost/unordered/unordered_node_set.hpp>`]."
into Chinese while preserving the xref link and the code tag
`<boost/unordered/unordered_node_set.hpp>`; update the text so the locale
matches the rest of the zh_Hans document.

In `@doc/modules/ROOT/pages/reference/header_unordered_node_set_zh_Hans.adoc`:
- Around line 2-40: The file mixes Chinese and English labels; change the
English headings/labels to Simplified Chinese: replace "Synopsis" with a zh_Hans
equivalent (e.g., "概要" or "摘要") and localize "Pmr aliases (C++17 and up)" to a
Chinese phrase indicating PMR 别名及其适用的 C++ 版本 (e.g., "Pmr 别名(C++17 及更高)"); keep
the rest of the Chinese comments intact and ensure any other English labels in
the same block (such as listing captions or inline English comments) are
similarly translated so the page is consistently zh_Hans while preserving
identifiers like unordered_node_set, operator==, swap, and erase_if.

In `@doc/modules/ROOT/pages/reference/header_unordered_set_fwd_zh_Hans.adoc`:
- Line 6: Update the cross-reference in header_unordered_set_fwd_zh_Hans.adoc so
it points to the localized page reference/header_unordered_set_zh_Hans.adoc
instead of reference/header_unordered_set.adoc (change the xref target used in
the link `reference/header_unordered_set.adoc`), and if the localized file does
not exist ensure there is a fallback or create
reference/header_unordered_set_zh_Hans.adoc so the zh_Hans page keeps language
continuity.

---

Nitpick comments:
In `@doc/modules/ROOT/pages/bibliography_zh_Hans.adoc`:
- Line 7: Update the external citation URL in the bibliography entry "*
_C/C{plus}{plus}用户期刊_,2006年2月. Pete Becker.
http://www.ddj.com/cpp/184402066[STL与TR1:第三部分 — 无序容器^]" to use HTTPS; replace
"http://www.ddj.com/cpp/184402066" with "https://www.ddj.com/cpp/184402066" and
keep the surrounding AsciiDoc link text/markup intact so the entry remains "*
_C/C{plus}{plus}用户期刊_,2006年2月. Pete Becker.
https://www.ddj.com/cpp/184402066[STL与TR1:第三部分 — 无序容器^]".

In `@doc/modules/ROOT/pages/copyright_zh_Hans.adoc`:
- Line 20: Update the Boost license URL in the text string
"根据Boost软件许可证1.0版分发。(详见随附文件 LICENSE++_++1++_++0.txt 或访问
http://www.boost.org/LICENSE_1_0.txt 。)" to use HTTPS instead of HTTP so the
link becomes https://www.boost.org/LICENSE_1_0.txt; edit the literal line in
copyright_zh_Hans.adoc (the sentence containing the Boost license URL) to
replace "http://" with "https://".
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: bbf1e993-0bc7-4a89-913a-d698f3a8debc

📥 Commits

Reviewing files that changed from the base of the PR and between 0502087 and 8c640cc.

📒 Files selected for processing (52)
  • doc/modules/ROOT/nav_zh_Hans.adoc
  • doc/modules/ROOT/pages/benchmarks_zh_Hans.adoc
  • doc/modules/ROOT/pages/bibliography_zh_Hans.adoc
  • doc/modules/ROOT/pages/buckets_zh_Hans.adoc
  • doc/modules/ROOT/pages/changes_zh_Hans.adoc
  • doc/modules/ROOT/pages/compliance_zh_Hans.adoc
  • doc/modules/ROOT/pages/concurrent_zh_Hans.adoc
  • doc/modules/ROOT/pages/copyright_zh_Hans.adoc
  • doc/modules/ROOT/pages/debuggability_zh_Hans.adoc
  • doc/modules/ROOT/pages/hash_equality_zh_Hans.adoc
  • doc/modules/ROOT/pages/hash_quality_zh_Hans.adoc
  • doc/modules/ROOT/pages/intro_zh_Hans.adoc
  • doc/modules/ROOT/pages/rationale_zh_Hans.adoc
  • doc/modules/ROOT/pages/ref_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/concurrent_flat_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/concurrent_node_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/concurrent_node_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/hash_traits_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_concurrent_flat_map_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_concurrent_flat_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_concurrent_flat_set_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_concurrent_flat_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_concurrent_node_map_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_concurrent_node_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_concurrent_node_set_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_concurrent_node_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_flat_map_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_flat_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_flat_set_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_flat_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_map_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_map_top_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_node_map_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_node_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_node_set_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_node_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_set_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_set_top_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/stats_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_flat_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_flat_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_multimap_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_multiset_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_node_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_node_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/regular_zh_Hans.adoc
  • doc/modules/ROOT/pages/structures_zh_Hans.adoc

Comment thread doc/modules/ROOT/pages/hash_equality_zh_Hans.adoc
Comment thread doc/modules/ROOT/pages/reference/header_concurrent_flat_map_fwd_zh_Hans.adoc Outdated
Comment on lines +80 to +83
size_type n = _implementation-defined_
const hasher& hf = hasher(),
const key_equal& eql = key_equal(),
const allocator_type& a = allocator_type());
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

cat -n doc/modules/ROOT/pages/reference/unordered_flat_map_zh_Hans.adoc | sed -n '75,90p'

Repository: CppDigest/unordered

Length of output: 1808


🏁 Script executed:

cat -n doc/modules/ROOT/pages/reference/unordered_flat_map_zh_Hans.adoc | sed -n '488,500p'

Repository: CppDigest/unordered

Length of output: 671


Initializer-list constructor signatures are missing commas.

Both declarations at lines 80-83 and 493-496 omit the comma after size_type n = _implementation-defined_, displaying invalid C++ syntax. The comma is required before the next parameter const hasher& hf.

Suggested fix

Line 80: Add comma after _implementation-defined_

                       size_type n = _implementation-defined_,
                       const hasher& hf = hasher(),

Line 493: Add comma after _implementation-defined_

              size_type n = _implementation-defined_,
              const hasher& hf = hasher(),
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
size_type n = _implementation-defined_
const hasher& hf = hasher(),
const key_equal& eql = key_equal(),
const allocator_type& a = allocator_type());
size_type n = _implementation-defined_,
const hasher& hf = hasher(),
const key_equal& eql = key_equal(),
const allocator_type& a = allocator_type());
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/unordered_flat_map_zh_Hans.adoc` around
lines 80 - 83, The initializer-list constructor declarations for
unordered_flat_map are missing the comma after the parameter "size_type n =
_implementation-defined_"; update both initializer-list constructor signatures
to insert a comma between "size_type n = _implementation-defined_" and the next
parameter "const hasher& hf = hasher()" so the parameter list reads
"...size_type n = _implementation-defined_, const hasher& hf = hasher(), const
key_equal& eql = key_equal(), const allocator_type& a = allocator_type()".

Comment thread doc/modules/ROOT/pages/reference/unordered_flat_set_zh_Hans.adoc Outdated
Comment thread doc/modules/ROOT/pages/reference/unordered_map_zh_Hans.adoc Outdated
Boost-Weblate Admin added 11 commits April 23, 2026 21:51
Currently translated at 100.0% (28 of 28 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Debuggability (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-debuggability-adoc/zh_Hans/
Currently translated at 6.5% (28 of 430 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Concurrent Flat Map (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-concurrent-flat-map-adoc/zh_Hans/
Currently translated at 100.0% (31 of 31 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Hash Equality (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-hash-equality-adoc/zh_Hans/
Currently translated at 100.0% (2 of 2 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Header Concurrent Flat Map Fwd (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-header-concurrent-flat-map-fwd-adoc/zh_Hans/
Currently translated at 55.5% (239 of 430 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Concurrent Flat Map (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-concurrent-flat-map-adoc/zh_Hans/
Currently translated at 100.0% (12 of 12 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Header Concurrent Flat Map (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-header-concurrent-flat-map-adoc/zh_Hans/
Currently translated at 100.0% (12 of 12 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Header Concurrent Node Map (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-header-concurrent-node-map-adoc/zh_Hans/
Currently translated at 100.0% (2 of 2 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Header Unordered Node Set Fwd (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-header-unordered-node-set-fwd-adoc/zh_Hans/
Currently translated at 58.3% (7 of 12 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Header Unordered Node Set (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-header-unordered-node-set-adoc/zh_Hans/
Currently translated at 100.0% (387 of 387 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Unordered Flat Map (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-unordered-flat-map-adoc/zh_Hans/
Currently translated at 100.0% (344 of 344 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Unordered Flat Set (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-unordered-flat-set-adoc/zh_Hans/
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 5

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@doc/modules/ROOT/pages/reference/concurrent_flat_map_zh_Hans.adoc`:
- Around line 108-113: The xref targets for the concurrent_flat_map bulk-visit
overloads are inconsistent and use `xref:concurrent_flat_map_bulk_visit[...]`
which can break same-page anchor resolution; update the three occurrences (the
two `visit` overloads and the `cvisit` overload) to use
`xref:`#concurrent_flat_map_bulk_visit`[...]` so they match the local anchor
naming convention (e.g., replace `xref:concurrent_flat_map_bulk_visit[visit]`
and `xref:concurrent_flat_map_bulk_visit[cvisit]` with
`xref:`#concurrent_flat_map_bulk_visit`[visit]` and
`xref:`#concurrent_flat_map_bulk_visit`[cvisit]`).
- Line 1240:
修正第1240行中被损坏的中文表述:把碎裂的短语(例如“成员类别名义时...会才参与重决议析”)替换为通顺的描述,确保使用正确的符号名称
Hash::is_transparent、Pred::is_transparent 和 模板签名 template<class K, class...
Args>,例如将句子改为“仅当 Hash::is_transparent 和 Pred::is_transparent
均为有效的成员类型名时,template<class K, class... Args> 重载才会参与重载决议。标准库假设 Hash 可同时被 K 和 Key
调用,且 Pred 为透明,从而支持异构查找以避免实例化 Key 类型的开销。”以恢复可读性和专业性。
- Around line 71-75: The constructor signature for concurrent_flat_map's
initializer-list overload is missing a comma after the defaulted parameter
`size_type n = _implementation-defined_`; update the declaration in the
concurrent_flat_map initializer_list constructor (the xref starting with
concurrent_flat_map(std::initializer_list<value_type> il, size_type n =
_implementation-defined_) ) to insert a comma between the `n` parameter and the
next parameter `const hasher& hf` so the parameter list reads "... size_type n =
_implementation-defined_, const hasher& hf = hasher(), const key_equal& eql =
key_equal(), const allocator_type& a = allocator_type());".
- Line 1410: The template constraint for the overload declared as template<class
K, class F> incorrectly references ExecutionPolicy; update the constraint to
test the first template parameter K instead (e.g. use
std::is_execution_policy_v<std::remove_cvref_t<K>> being false) so this overload
is disabled when K is an execution policy and thus distinguishes it from
template<class ExecutionPolicy, class F>; locate the sentence that currently
contains std::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> and
replace ExecutionPolicy with K (keeping the remove_cvref_t and negation as
shown).
- Around line 1168-1171: The documentation shows incorrect function names: the
templates declared as insert_or_visit and insert_or_cvisit actually belong to
the insert_and_visit / insert_and_cvisit family (they take two functors F1, F2).
Update the declarations to use insert_and_visit(InputIterator, InputIterator, F1
f1, F2 f2) and insert_and_cvisit(InputIterator, InputIterator, F1 f1, F2 f2) so
the signatures match the section heading and earlier API; ensure any surrounding
references in this "insert_and_[c]visit" section also use the insert_and_* names
consistently.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: dfc6a4b9-bf07-480a-95be-75e58efd16fb

📥 Commits

Reviewing files that changed from the base of the PR and between 8c640cc and 787c495.

📒 Files selected for processing (10)
  • doc/modules/ROOT/pages/debuggability_zh_Hans.adoc
  • doc/modules/ROOT/pages/hash_equality_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/concurrent_flat_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_concurrent_flat_map_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_concurrent_flat_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_concurrent_node_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_node_set_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_node_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_flat_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_flat_set_zh_Hans.adoc
✅ Files skipped from review due to trivial changes (7)
  • doc/modules/ROOT/pages/reference/header_concurrent_flat_map_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_node_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/hash_equality_zh_Hans.adoc
  • doc/modules/ROOT/pages/debuggability_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_flat_set_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_unordered_node_set_fwd_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/header_concurrent_flat_map_zh_Hans.adoc
🚧 Files skipped from review as they are similar to previous changes (2)
  • doc/modules/ROOT/pages/reference/header_concurrent_node_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_flat_map_zh_Hans.adoc

Comment on lines +71 to +75
xref:#concurrent_flat_map_initializer_list_constructor[concurrent_flat_map](std::initializer_list<value_type> il,
size_type n = _implementation-defined_
const hasher& hf = hasher(),
const key_equal& eql = key_equal(),
const allocator_type& a = allocator_type());
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify this signature against the English source page and the zh_Hans page.
fd -i 'concurrent_flat_map*.adoc' doc | xargs -I{} rg -n "initializer_list<value_type> il|_implementation-defined_|const hasher& hf" {}

Repository: CppDigest/unordered

Length of output: 3442


Missing comma in constructor signature breaks parameter list syntax

The initializer list constructor is missing a comma after the n parameter on line 72, causing invalid syntax. The size_type n = _implementation-defined_ declaration must be followed by a comma before the const hasher& hf parameter.

Required fix
 concurrent_flat_map(std::initializer_list<value_type> il,
-                    size_type n = _implementation-defined_
+                    size_type n = _implementation-defined_,
                     const hasher& hf = hasher(),
                     const key_equal& eql = key_equal(),
                     const allocator_type& a = allocator_type());
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
xref:#concurrent_flat_map_initializer_list_constructor[concurrent_flat_map](std::initializer_list<value_type> il,
size_type n = _implementation-defined_
const hasher& hf = hasher(),
const key_equal& eql = key_equal(),
const allocator_type& a = allocator_type());
xref:`#concurrent_flat_map_initializer_list_constructor`[concurrent_flat_map](std::initializer_list<value_type> il,
size_type n = _implementation-defined_,
const hasher& hf = hasher(),
const key_equal& eql = key_equal(),
const allocator_type& a = allocator_type());
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_flat_map_zh_Hans.adoc` around
lines 71 - 75, The constructor signature for concurrent_flat_map's
initializer-list overload is missing a comma after the defaulted parameter
`size_type n = _implementation-defined_`; update the declaration in the
concurrent_flat_map initializer_list constructor (the xref starting with
concurrent_flat_map(std::initializer_list<value_type> il, size_type n =
_implementation-defined_) ) to insert a comma between the `n` parameter and the
next parameter `const hasher& hf` so the parameter list reads "... size_type n =
_implementation-defined_, const hasher& hf = hasher(), const key_equal& eql =
key_equal(), const allocator_type& a = allocator_type());".

Comment on lines +108 to +113
size_t xref:concurrent_flat_map_bulk_visit[visit](FwdIterator first, FwdIterator last, F f);
template<class FwdIterator, class F>
size_t xref:concurrent_flat_map_bulk_visit[visit](FwdIterator first, FwdIterator last, F f) const;
template<class FwdIterator, class F>
size_t xref:concurrent_flat_map_bulk_visit[cvisit](FwdIterator first, FwdIterator last, F f) const;

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Inconsistent internal xref target may break anchor resolution

Line 108 and Line 408 use xref:concurrent_flat_map_bulk_visit[...] while nearby internal anchors use xref:#.... Please normalize to xref:#concurrent_flat_map_bulk_visit[...] for same-page anchor consistency.

Also applies to: 408-408

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_flat_map_zh_Hans.adoc` around
lines 108 - 113, The xref targets for the concurrent_flat_map bulk-visit
overloads are inconsistent and use `xref:concurrent_flat_map_bulk_visit[...]`
which can break same-page anchor resolution; update the three occurrences (the
two `visit` overloads and the `cvisit` overload) to use
`xref:`#concurrent_flat_map_bulk_visit`[...]` so they match the local anchor
naming convention (e.g., replace `xref:concurrent_flat_map_bulk_visit[visit]`
and `xref:concurrent_flat_map_bulk_visit[cvisit]` with
`xref:`#concurrent_flat_map_bulk_visit`[visit]` and
`xref:`#concurrent_flat_map_bulk_visit`[cvisit]`).

Comment thread doc/modules/ROOT/pages/reference/concurrent_flat_map_zh_Hans.adoc
Comment thread doc/modules/ROOT/pages/reference/concurrent_flat_map_zh_Hans.adoc
Throws:;; Only throws an exception if it is thrown by `hasher`, `key_equal` or `f`.
注意;; `f` is passed a non-const reference to `x`. +
+
仅当 `std::is++_++execution++_++policy++_++v++<++std::remove++_++cvref++_++t++<++ExecutionPolicy++>>++` 为 `false` 时, `template++<++class K, class F++>++` 重载才会参与重载决议。 +
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Verify whether this constraint should refer to K by comparing similar wording in related docs.
fd -i 'concurrent_flat_map*.adoc' doc | xargs -I{} rg -n "is_execution_policy_v|template<class K, class F> size_type erase_if|ExecutionPolicy" {}

Repository: CppDigest/unordered

Length of output: 2508


🏁 Script executed:

sed -n '1400,1470p' doc/modules/ROOT/pages/reference/concurrent_flat_map_zh_Hans.adoc

Repository: CppDigest/unordered

Length of output: 2113


Template constraint references non-existent type parameter

The constraint on the template<class K, class F> overload at line 1434 incorrectly references ExecutionPolicy, which is not a parameter of this template. The parameter exists only in the separate parallel overload. The constraint should check whether the first parameter is an execution policy to distinguish this overload from the template<class ExecutionPolicy, class F> parallel version—likely using std::is_execution_policy_v applied to K instead.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_flat_map_zh_Hans.adoc` at line
1410, The template constraint for the overload declared as template<class K,
class F> incorrectly references ExecutionPolicy; update the constraint to test
the first template parameter K instead (e.g. use
std::is_execution_policy_v<std::remove_cvref_t<K>> being false) so this overload
is disabled when K is an execution policy and thus distinguishes it from
template<class ExecutionPolicy, class F>; locate the sentence that currently
contains std::is_execution_policy_v<std::remove_cvref_t<ExecutionPolicy>> and
replace ExecutionPolicy with K (keeping the remove_cvref_t and negation as
shown).

Boost-Weblate Admin added 3 commits April 23, 2026 22:24
Currently translated at 100.0% (437 of 437 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Unordered Map (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-unordered-map-adoc/zh_Hans/
Currently translated at 100.0% (391 of 391 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Unordered Multimap (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-unordered-multimap-adoc/zh_Hans/
Currently translated at 100.0% (372 of 372 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Unordered Multiset (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-unordered-multiset-adoc/zh_Hans/
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@doc/modules/ROOT/pages/reference/unordered_map_zh_Hans.adoc`:
- Around line 1804-1827: The three type aliases __iter-key-type__,
__iter-mapped-type__, and __iter-to-alloc-type__ contain a typo using the token
"std;;" instead of the C++ namespace qualifier "std::"; update all occurrences
of "std;;" to "std::" within those templates (including in uses of
remove_const_t, tuple_element_t, add_const_t, pair, and tuple_element_t
references to __iter-value-type__) so the declarations compile correctly.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 194583db-e76f-48e4-9841-659c4b12cc9a

📥 Commits

Reviewing files that changed from the base of the PR and between 787c495 and 023614b.

📒 Files selected for processing (3)
  • doc/modules/ROOT/pages/reference/unordered_map_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_multimap_zh_Hans.adoc
  • doc/modules/ROOT/pages/reference/unordered_multiset_zh_Hans.adoc
🚧 Files skipped from review as they are similar to previous changes (1)
  • doc/modules/ROOT/pages/reference/unordered_multiset_zh_Hans.adoc

Comment on lines +1804 to +1827
==== __iter-key-type__
[listings, subs="+macros,+quotes"]
-----
template<class InputIterator>
using __iter-key-type__ = std;;remove_const_t<
std;;tuple_element_t<0, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
-----

==== __iter-mapped-type__
[listings, subs="+macros,+quotes"]
-----
template<class InputIterator>
using __iter-mapped-type__ =
std;;tuple_element_t<1, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>; // exposition only
-----

==== __iter-to-alloc-type__
[listings, subs="+macros,+quotes"]
-----
template<class InputIterator>
using __iter-to-alloc-type__ = std;;pair<
std;;add_const_t<std;;tuple_element_t<0, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>>,
std;;tuple_element_t<1, xref:#unordered_map_iter_value_type[__iter-value-type__]<InputIterator>>>; // exposition only
-----
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Critical syntax error: std;; should be std::

The deduction guides section contains multiple instances where the C++ namespace qualifier is incorrectly written as std;; (double semicolon) instead of std:: (double colon). This syntax error would prevent the code from compiling if used as a reference.

🔧 Proposed fix for namespace qualifiers
 template<class InputIterator>
-  using __iter-key-type__ = std;;remove_const_t<
-    std;;tuple_element_t<0, xref:`#unordered_map_iter_value_type`[__iter-value-type__]<InputIterator>>>; // exposition only
+  using __iter-key-type__ = std::remove_const_t<
+    std::tuple_element_t<0, xref:`#unordered_map_iter_value_type`[__iter-value-type__]<InputIterator>>>; // exposition only
 template<class InputIterator>
-  using __iter-to-alloc-type__ = std;;pair<
-    std;;add_const_t<std;;tuple_element_t<0, xref:`#unordered_map_iter_value_type`[__iter-value-type__]<InputIterator>>>,
-    std;;tuple_element_t<1, xref:`#unordered_map_iter_value_type`[__iter-value-type__]<InputIterator>>>; // exposition only
+  using __iter-to-alloc-type__ = std::pair<
+    std::add_const_t<std::tuple_element_t<0, xref:`#unordered_map_iter_value_type`[__iter-value-type__]<InputIterator>>>,
+    std::tuple_element_t<1, xref:`#unordered_map_iter_value_type`[__iter-value-type__]<InputIterator>>>; // exposition only
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/unordered_map_zh_Hans.adoc` around lines
1804 - 1827, The three type aliases __iter-key-type__, __iter-mapped-type__, and
__iter-to-alloc-type__ contain a typo using the token "std;;" instead of the C++
namespace qualifier "std::"; update all occurrences of "std;;" to "std::" within
those templates (including in uses of remove_const_t, tuple_element_t,
add_const_t, pair, and tuple_element_t references to __iter-value-type__) so the
declarations compile correctly.

Boost-Weblate Admin added 7 commits April 23, 2026 22:47
Currently translated at 100.0% (412 of 412 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Unordered Node Map (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-unordered-node-map-adoc/zh_Hans/
Currently translated at 100.0% (371 of 371 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Unordered Node Set (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-unordered-node-set-adoc/zh_Hans/
Currently translated at 100.0% (390 of 390 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Unordered Set (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-unordered-set-adoc/zh_Hans/
Currently translated at 100.0% (80 of 80 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Regular (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-regular-adoc/zh_Hans/
Currently translated at 100.0% (57 of 57 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Structures (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-structures-adoc/zh_Hans/
Currently translated at 100.0% (430 of 430 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Concurrent Flat Map (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-concurrent-flat-map-adoc/zh_Hans/
Currently translated at 100.0% (397 of 397 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Concurrent Flat Set (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-concurrent-flat-set-adoc/zh_Hans/
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🧹 Nitpick comments (1)
doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc (1)

1217-1217: 异构查找说明存在重复短语,影响可读性。

Line 1217、Line 1376、Line 1393 都出现“这支持异构查找,该机制支持异构查找”的重复表达,建议保留一次即可。

建议修复
-...且 `Pred` 为透明的。这支持异构查找,该机制支持异构查找,从而避免实例化 `Key` 类型的开销。
+...且 `Pred` 为透明的。该机制支持异构查找,从而避免实例化 `Key` 类型的开销。

Also applies to: 1376-1376, 1393-1393

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc` at line
1217, The text contains a duplicated phrase ("这支持异构查找,该机制支持异构查找") in the
documentation sentences that describe transparent hash/predicate overloads;
update the occurrences where `Hash::is++_++transparent`,
`Pred::is++_++transparent`, and the `template++<++class K++>++` overload are
mentioned to remove the repetition so the sentence reads once (e.g., "这支持异构查找。")
while preserving the technical terms and surrounding explanation.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc`:
- Line 1215: The documentation for the `erase` and `erase_if` functions
mistakenly says "返回;; 插入的元素数量(0 或 1)" — update the return-value description to
"擦除的元素数量(0 或 1)" for both `erase` and `erase_if` occurrences (the markup around
the text at the two instances that currently read "返回;; 插入的元素数量(0 或 1)。"), so
the description correctly reflects the number of elements removed.
- Around line 66-70: The initializer-list constructor signature for
concurrent_flat_set (xref:`#concurrent_flat_set_initializer_list_constructor`) is
missing a comma after the parameter "size_type n = _implementation-defined_",
causing an incorrect API declaration; update the declaration so each parameter
is comma-separated (insert a comma after that parameter) and ensure the same fix
is applied to the other occurrences around the concurrent_flat_set
initializer-list signature (lines noted in the comment) so the signature matches
the standard form including hasher, key_equal, and allocator parameters.
- Around line 539-544: The constructor documentation for
concurrent_flat_set(size_type n, allocator_type const& a) incorrectly refers to
a non-existent parameter `hf`; update the text to state that the container is
constructed with at least `n` buckets using the default hash function, the
default key-equality predicate, and allocator `a` (i.e., replace "使用 `hf`
作为哈希函数" with "使用默认哈希函数" and ensure the rest mentions the default equality
predicate and allocator `a`).
- Around line 331-334: Replace the misleading phrase "非可变修改" with "const 限定修改"
(reflecting the English "Const-qualified modifications") throughout the
paragraph describing concurrent guarantees; update both the single-line entry
and the subsequent bullets that reference this condition so the terminology is
consistent, and ensure any adjacent wording still reads naturally after the
substitution.

---

Nitpick comments:
In `@doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc`:
- Line 1217: The text contains a duplicated phrase ("这支持异构查找,该机制支持异构查找") in the
documentation sentences that describe transparent hash/predicate overloads;
update the occurrences where `Hash::is++_++transparent`,
`Pred::is++_++transparent`, and the `template++<++class K++>++` overload are
mentioned to remove the repetition so the sentence reads once (e.g., "这支持异构查找。")
while preserving the technical terms and surrounding explanation.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: f01baee3-b954-449f-9a15-b7e8a3c46f28

📥 Commits

Reviewing files that changed from the base of the PR and between 1569c81 and 4a80376.

📒 Files selected for processing (1)
  • doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc

Comment on lines +66 to +70
xref:#concurrent_flat_set_initializer_list_constructor[concurrent_flat_set](std::initializer_list<value_type> il,
size_type n = _implementation-defined_
const hasher& hf = hasher(),
const key_equal& eql = key_equal(),
const allocator_type& a = allocator_type());
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

初始化列表构造函数签名缺少逗号,导致 API 声明不正确。

Line 67 和 Line 523 后缺少参数分隔逗号(size_type n = _implementation-defined_ 后),当前展示的声明与标准签名不一致。

建议修复
-    xref:`#concurrent_flat_set_initializer_list_constructor`[concurrent_flat_set](std::initializer_list<value_type> il,
-                        size_type n = _implementation-defined_
+    xref:`#concurrent_flat_set_initializer_list_constructor`[concurrent_flat_set](std::initializer_list<value_type> il,
+                        size_type n = _implementation-defined_,
                         const hasher& hf = hasher(),
-concurrent_flat_set(std::initializer_list<value_type> il,
-                    size_type n = _implementation-defined_
+concurrent_flat_set(std::initializer_list<value_type> il,
+                    size_type n = _implementation-defined_,
                     const hasher& hf = hasher(),

Also applies to: 522-526

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc` around
lines 66 - 70, The initializer-list constructor signature for
concurrent_flat_set (xref:`#concurrent_flat_set_initializer_list_constructor`) is
missing a comma after the parameter "size_type n = _implementation-defined_",
causing an incorrect API declaration; update the declaration so each parameter
is comma-separated (insert a comma after that parameter) and ensure the same fix
is applied to the other occurrences around the concurrent_flat_set
initializer-list signature (lines noted in the comment) so the signature matches
the standard form including hasher, key_equal, and allocator parameters.

Comment on lines +331 to +334
* 对元素的非可变修改。
* 对元素的可变修改:
** 在容器接受两个访问函数的操作中,此条件始终适用于第一个访问函数。
** 在名称不包含 `cvisit` 的非常量容器函数中,此条件适用于最后一个(或唯一一个)访问函数。
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

并发保证条目“非可变修改”表述不准确,建议改为“const 限定修改”。

这里对应英文的 “Const-qualified modifications”,当前“非可变修改”容易被理解成“不能修改”,语义偏差较大。

建议修复
-* 对元素的非可变修改。
+* 对元素的 `const` 限定修改。
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
* 对元素的非可变修改
* 对元素的可变修改:
** 在容器接受两个访问函数的操作中,此条件始终适用于第一个访问函数。
** 在名称不包含 `cvisit` 的非常量容器函数中,此条件适用于最后一个(或唯一一个)访问函数。
* 对元素的 `const` 限定修改
* 对元素的可变修改:
** 在容器接受两个访问函数的操作中,此条件始终适用于第一个访问函数。
** 在名称不包含 `cvisit` 的非常量容器函数中,此条件适用于最后一个(或唯一一个)访问函数。
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc` around
lines 331 - 334, Replace the misleading phrase "非可变修改" with "const 限定修改"
(reflecting the English "Const-qualified modifications") throughout the
paragraph describing concurrent guarantees; update both the single-line entry
and the subsequent bullets that reference this condition so the terminology is
consistent, and ensure any adjacent wording still reads naturally after the
substitution.

Comment on lines +539 to +544
concurrent_flat_set(size_type n, allocator_type const& a);

```

构造一个至少包含 `n` 个桶的空容器,使用 `hf` 作为哈希函数、默认的键相等性谓词以及 `a` 作为分配器。

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

构造函数说明引用了不存在的参数 hf

Line 543 描述“使用 hf 作为哈希函数”,但该重载签名只有 (size_type n, allocator_type const& a),这里应描述为“使用默认哈希函数”。

建议修复
-构造一个至少包含 `n` 个桶的空容器,使用 `hf` 作为哈希函数、默认的键相等性谓词以及 `a` 作为分配器。
+构造一个至少包含 `n` 个桶的空容器,使用默认哈希函数、默认的键相等性谓词以及 `a` 作为分配器。
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc` around
lines 539 - 544, The constructor documentation for concurrent_flat_set(size_type
n, allocator_type const& a) incorrectly refers to a non-existent parameter `hf`;
update the text to state that the container is constructed with at least `n`
buckets using the default hash function, the default key-equality predicate, and
allocator `a` (i.e., replace "使用 `hf` 作为哈希函数" with "使用默认哈希函数" and ensure the
rest mentions the default equality predicate and allocator `a`).

Comment thread doc/modules/ROOT/pages/reference/concurrent_flat_set_zh_Hans.adoc
Boost-Weblate Admin added 5 commits April 23, 2026 23:49
Currently translated at 100.0% (464 of 464 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Concurrent Node Map (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-concurrent-node-map-adoc/zh_Hans/
Currently translated at 100.0% (10 of 10 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Hash Traits (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-hash-traits-adoc/zh_Hans/
Currently translated at 1.6% (7 of 431 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Concurrent Node Set (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-concurrent-node-set-adoc/zh_Hans/
Currently translated at 100.0% (431 of 431 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Concurrent Node Set (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-concurrent-node-set-adoc/zh_Hans/
Currently translated at 100.0% (12 of 12 strings)

Translation: Boost Unordered Translation (zh_Hans)/Doc / Modules / Root / Pages / Reference / Header Unordered Node Set (adoc)
Translate-URL: https://boost-weblate.cloud/projects/boost-unordered-documentation-zh_Hans/doc-modules-root-pages-reference-header-unordered-node-set-adoc/zh_Hans/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants