[libcxx-commits] [libcxx] [libc++] Implement `std::multiset` (PR #128363)

via libcxx-commits libcxx-commits at lists.llvm.org
Sun Mar 23 08:41:06 PDT 2025


github-actions[bot] wrote:

<!--LLVM CODE FORMAT COMMENT: {clang-format}-->


:warning: C/C++ code formatter, clang-format found issues in your code. :warning:

<details>
<summary>
You can test this locally with the following command:
</summary>

``````````bash
git-clang-format --diff 2f1416bbcde898d65e9762e6ce498bb0121e4610 437a6435b2dde9a7b99ad12d91a5b22311ce7300 --extensions ,inc,cpp,h -- libcxx/include/__flat_set/flat_multiset.h libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/alloc.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/assign_initializer_list.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/compare.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/containers.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/copy.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/copy_alloc.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/copy_assign.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/deduct.compile.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/deduct.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/deduct_pmr.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/default.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/dtor_noexcept.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/initializer_list.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/iter_iter.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/move.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/move_alloc.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/move_assign.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/pmr.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/range.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_container.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_initializer_list.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_iter_iter.pass.cpp libcxx/test/std/containers/container.adaptors/flat.multiset/helpers.h libcxx/test/std/containers/container.adaptors/flat.set/flat.set.capacity/empty.verify.cpp libcxx/include/flat_set libcxx/include/version libcxx/modules/std/flat_set.inc libcxx/test/std/containers/container.adaptors/flat.set/flat.set.erasure/erase_if.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/clear.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.operations/contains.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.operations/count.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.operations/equal_range.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.operations/find.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.operations/lower_bound.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.operations/upper_bound.pass.cpp libcxx/test/std/language.support/support.limits/support.limits.general/flat_set.version.compile.pass.cpp libcxx/test/std/language.support/support.limits/support.limits.general/version.version.compile.pass.cpp
``````````

</details>

<details>
<summary>
View the diff from clang-format here.
</summary>

``````````diff
diff --git a/libcxx/include/flat_set b/libcxx/include/flat_set
index 5051b27097..ebbb3a0247 100644
--- a/libcxx/include/flat_set
+++ b/libcxx/include/flat_set
@@ -31,7 +31,7 @@ namespace std {
   template<class Key, class Compare, class KeyContainer, class Predicate>
     typename flat_set<Key, Compare, KeyContainer>::size_type
       erase_if(flat_set<Key, Compare, KeyContainer>& c, Predicate pred);
-  
+
    // [flat.multiset], class template flat_multiset
   template<class Key, class Compare = less<Key>, class KeyContainer = vector<Key>>
     class flat_multiset;
@@ -55,10 +55,10 @@ namespace std {
 #  include <__config>
 
 #  if _LIBCPP_STD_VER >= 23
-#    include <__flat_map/sorted_unique.h>
 #    include <__flat_map/sorted_equivalent.h>
-#    include <__flat_set/flat_set.h>
+#    include <__flat_map/sorted_unique.h>
 #    include <__flat_set/flat_multiset.h>
+#    include <__flat_set/flat_set.h>
 #  endif
 
 // for feature-test macros
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_container.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_container.pass.cpp
index 4359526588..6c60b22f57 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_container.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_container.pass.cpp
@@ -129,7 +129,7 @@ void test() {
     using M = std::flat_multiset<int, std::less<int>, std::deque<int, A>>;
     auto ks = std::deque<int, A>({1, 2, 4, 10}, A(4));
     auto m  = M(std::sorted_equivalent, ks, A(6)); // replaces the allocators
-    assert(!ks.empty());                       // it was an lvalue above
+    assert(!ks.empty());                           // it was an lvalue above
     assert((m == M{1, 2, 4, 10}));
     assert(M(m).extract().get_allocator() == A(6));
 
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_initializer_list.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_initializer_list.pass.cpp
index 15adf6214a..4dc05dc147 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_initializer_list.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_initializer_list.pass.cpp
@@ -66,18 +66,22 @@ void test() {
     using C = typename M::key_compare;
     static_assert(std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<int>>);
     static_assert(std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<int>, C>);
-    static_assert(std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<int>, C, std::allocator<int>>);
-    static_assert(std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<int>, std::allocator<int>>);
+    static_assert(
+        std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<int>, C, std::allocator<int>>);
+    static_assert(
+        std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<int>, std::allocator<int>>);
     static_assert(!std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<const int>>);
     static_assert(!std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<const int>, C>);
     static_assert(
-        !std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<const int>, C, std::allocator<int>>);
+        !std::
+            is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<const int>, C, std::allocator<int>>);
     static_assert(
         !std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<const int>, std::allocator<int>>);
     static_assert(!std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<const int>>);
     static_assert(!std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<const int>, C>);
     static_assert(
-        !std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<const int>, C, std::allocator<int>>);
+        !std::
+            is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<const int>, C, std::allocator<int>>);
     static_assert(
         !std::is_constructible_v<M, std::sorted_equivalent_t, std::initializer_list<const int>, std::allocator<int>>);
   }
diff --git a/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_iter_iter.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_iter_iter.pass.cpp
index a73080d5a7..594da66455 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_iter_iter.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.multiset/flat.multiset.cons/sorted_iter_iter.pass.cpp
@@ -57,7 +57,7 @@ void test() {
     // cpp17_input_iterator
     using M  = std::flat_multiset<int>;
     int ar[] = {1, 2, 4, 5};
-    auto m   = M(std::sorted_equivalent, cpp17_input_iterator<const int*>(ar), cpp17_input_iterator<const int*>(ar + 4));
+    auto m = M(std::sorted_equivalent, cpp17_input_iterator<const int*>(ar), cpp17_input_iterator<const int*>(ar + 4));
     auto expected = M{1, 2, 4, 5};
     assert(m == expected);
 

``````````

</details>


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


More information about the libcxx-commits mailing list