[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:23:41 PDT 2026
https://github.com/batoripX created https://github.com/llvm/llvm-project/pull/215100
### 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].
>From b333c3862c210bb73e6bfbd9a1afdd26a952bbec Mon Sep 17 00:00:00 2001
From: coderX <bbatoripers at gmail.com>
Date: Sun, 9 Aug 2026 07:16:57 -0700
Subject: [PATCH] Add comment about erase_if for flat_multimap
(erase_if is shared or overloaded for flat_multimap)
---
libcxx/modules/std/flat_map.inc | 1 +
1 file changed, 1 insertion(+)
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
More information about the libcxx-commits
mailing list