[libcxx-commits] [libcxx] [libc++] implement std::flat_set (PR #125241)
via libcxx-commits
libcxx-commits at lists.llvm.org
Fri Jan 31 08:05:56 PST 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 8035d38daab028b8da3cf2b01090b5f0ceacd695 a0f80fcd8c55154c89535488479872de34e5c8dd --extensions ,cpp,h -- libcxx/include/__flat_set/flat_set.h libcxx/include/flat_set libcxx/test/std/containers/container.adaptors/flat.set/flat.set.capacity/empty.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.capacity/empty.verify.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.capacity/max_size.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.capacity/size.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/alloc.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/assign_initializer_list.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/compare.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/containers.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/copy.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/copy_alloc.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/copy_assign.addressof.compile.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/copy_assign.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/deduct.compile.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/deduct.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/deduct_pmr.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/default.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/default_noexcept.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/dtor_noexcept.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/initializer_list.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/iter_iter.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move_alloc.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move_assign.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move_assign_clears.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move_assign_noexcept.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move_exceptions.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move_noexcept.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/pmr.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/range.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/sorted_container.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/sorted_initializer_list.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/sorted_iter_iter.pass.cpp 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.erasure/erase_if_exceptions.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.iterators/iterator.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.iterators/iterator_comparison.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.iterators/iterator_concept_conformance.compile.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.iterators/range_concept_conformance.compile.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.iterators/reverse_iterator.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.modifiers/emplace.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/emplace_hint.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/erase_iter.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/erase_iter_iter.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/erase_key.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/erase_key_transparent.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/extract.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_cv.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_initializer_list.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_iter_cv.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_iter_iter.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_iter_rv.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_range.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_rv.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_sorted_initializer_list.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_sorted_iter_iter.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_transparent.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/replace.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/swap_exception.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/swap_free.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/swap_member.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.observers/comp.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/contains_transparent.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/count_transparent.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/equal_range_transparent.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/find_transparent.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/lower_bound_transparent.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.operations/upper_bound.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/flat.set.operations/upper_bound_transparent.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/helpers.h libcxx/test/std/containers/container.adaptors/flat.set/incomplete_type.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/op_compare.pass.cpp libcxx/test/std/containers/container.adaptors/flat.set/types.compile.pass.cpp
``````````
</details>
<details>
<summary>
View the diff from clang-format here.
</summary>
``````````diff
diff --git a/libcxx/include/__flat_set/flat_set.h b/libcxx/include/__flat_set/flat_set.h
index c920632c45..4b2688ce07 100644
--- a/libcxx/include/__flat_set/flat_set.h
+++ b/libcxx/include/__flat_set/flat_set.h
@@ -831,18 +831,18 @@ template <class _Key, class _Compare, class _KeyContainer, class _Allocator>
struct uses_allocator<flat_set<_Key, _Compare, _KeyContainer>, _Allocator>
: bool_constant<uses_allocator_v<_KeyContainer, _Allocator>> {};
- template <class _Key, class _Compare, class _KeyContainer, class _Predicate>
- _LIBCPP_HIDE_FROM_ABI typename flat_set<_Key, _Compare, _KeyContainer>::size_type
- erase_if(flat_set<_Key, _Compare, _KeyContainer>& __flat_set, _Predicate __pred) {
- auto __guard = std::__make_exception_guard([&] { __flat_set.clear(); });
- auto __it = std::remove_if(__flat_set.__keys_.begin(), __flat_set.__keys_.end(), [&](const auto& e) -> bool {
- return static_cast<bool>(__pred(e));
- });
- auto __res = __flat_set.__keys_.end() - __it;
- __flat_set.__keys_.erase(__it, __flat_set.__keys_.end());
- __guard.__complete();
- return __res;
- }
+template <class _Key, class _Compare, class _KeyContainer, class _Predicate>
+_LIBCPP_HIDE_FROM_ABI typename flat_set<_Key, _Compare, _KeyContainer>::size_type
+erase_if(flat_set<_Key, _Compare, _KeyContainer>& __flat_set, _Predicate __pred) {
+ auto __guard = std::__make_exception_guard([&] { __flat_set.clear(); });
+ auto __it = std::remove_if(__flat_set.__keys_.begin(), __flat_set.__keys_.end(), [&](const auto& e) -> bool {
+ return static_cast<bool>(__pred(e));
+ });
+ auto __res = __flat_set.__keys_.end() - __it;
+ __flat_set.__keys_.erase(__it, __flat_set.__keys_.end());
+ __guard.__complete();
+ return __res;
+}
_LIBCPP_END_NAMESPACE_STD
diff --git a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move_alloc.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move_alloc.pass.cpp
index fc7f68d8c9..817c37db9b 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move_alloc.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.cons/move_alloc.pass.cpp
@@ -53,7 +53,7 @@ int main(int, char**) {
assert(m.size() == 3);
auto keys = std::move(m).extract();
assert(keys.get_allocator() == A(3));
- assert(std::ranges::equal(keys, expected ));
+ assert(std::ranges::equal(keys, expected));
// The original flat_set is moved-from.
assert(std::is_sorted(mo.begin(), mo.end(), mo.value_comp()));
@@ -63,7 +63,7 @@ int main(int, char**) {
}
{
// moved-from object maintains invariant if one of underlying container does not clear after move
- using M = std::flat_set<int, std::less<>, CopyOnlyVector<int>>;
+ using M = std::flat_set<int, std::less<>, CopyOnlyVector<int>>;
M m1 = M({1, 2, 3});
M m2(std::move(m1), std::allocator<int>{});
assert(m2.size() == 3);
diff --git a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_initializer_list.pass.cpp b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_initializer_list.pass.cpp
index 7381514a70..c47a6b4ff5 100644
--- a/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_initializer_list.pass.cpp
+++ b/libcxx/test/std/containers/container.adaptors/flat.set/flat.set.modifiers/insert_initializer_list.pass.cpp
@@ -24,11 +24,11 @@
template <class KeyContainer>
void test() {
- using Key = typename KeyContainer::value_type;
- using M = std::flat_set<Key, std::less<Key>, KeyContainer>;
- using V = typename M::value_type;
+ using Key = typename KeyContainer::value_type;
+ using M = std::flat_set<Key, std::less<Key>, KeyContainer>;
+ using V = typename M::value_type;
- M m = {1,1,1,3,3,3};
+ M m = {1, 1, 1, 3, 3, 3};
m.insert({
4,
4,
``````````
</details>
https://github.com/llvm/llvm-project/pull/125241
More information about the libcxx-commits
mailing list