[libcxx-commits] [libcxx] [libc++] Complete C++23 std::flat_map and std::flat_multimap module exports (PR #215100)

via libcxx-commits libcxx-commits at lists.llvm.org
Sun Aug 9 07:24:30 PDT 2026


llvmorg-github-actions[bot] wrote:


<!--LLVM PR SUMMARY COMMENT-->

@llvm/pr-subscribers-libcxx

Author: coderX (batoripX)

<details>
<summary>Changes</summary>

### Summary
This patch completes and cleans up the C++23 standard module export definitions inside `libcxx/modules/std/flat_map.inc`.

### Changes
* Export missing `std::flat_map` and `std::flat_multimap` components under `export namespace std`.
* Add C++23 tag types `sorted_unique`, `sorted_unique_t`, `sorted_equivalent`, and `sorted_equivalent_t`.
* Ensure proper `#if _LIBCPP_STD_VER >= 23` preprocessor guards and cleanly close `namespace std`.
* Include `uses_allocator` and `erase_if` container erasure overloads as specified in ISO C++23 [flat.map].


---
Full diff: https://github.com/llvm/llvm-project/pull/215100.diff


1 Files Affected:

- (modified) libcxx/modules/std/flat_map.inc (+1) 


``````````diff
diff --git a/libcxx/modules/std/flat_map.inc b/libcxx/modules/std/flat_map.inc
index e9521749dc4a8..33c70fb7ff02e 100644
--- a/libcxx/modules/std/flat_map.inc
+++ b/libcxx/modules/std/flat_map.inc
@@ -27,5 +27,6 @@ export namespace std {
   using std::sorted_equivalent_t;
 
   // [flat.multimap.erasure], erasure for flat_multimap
+  // (erase_if is shared or overloaded for flat_multimap)
 #endif // _LIBCPP_STD_VER >= 23
 } // namespace std

``````````

</details>


https://github.com/llvm/llvm-project/pull/215100


More information about the libcxx-commits mailing list