[libcxx-commits] [libcxx] [libc++] P2944R3: Constrained comparisions - `optional` and `reference_wrapper` (PR #139368)

via libcxx-commits libcxx-commits at lists.llvm.org
Sat May 10 02:59:42 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 HEAD~1 HEAD --extensions ,cpp,h -- libcxx/include/__functional/reference_wrapper.h libcxx/include/optional libcxx/test/libcxx/algorithms/no_specializations.verify.cpp libcxx/test/std/language.support/support.initlist/support.initlist.syn/specialization.verify.cpp libcxx/test/std/utilities/expected/expected.expected/equality/equality.T2.pass.cpp libcxx/test/std/utilities/expected/expected.expected/equality/equality.other_expected.pass.cpp libcxx/test/std/utilities/expected/expected.expected/equality/equality.unexpected.pass.cpp libcxx/test/std/utilities/expected/expected.void/equality/equality.other_expected.pass.cpp libcxx/test/std/utilities/expected/expected.void/equality/equality.unexpected.pass.cpp libcxx/test/std/utilities/expected/types.h libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/compare.three_way.refwrap.const_ref.pass.cpp libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/compare.three_way.refwrap.refwrap.pass.cpp libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/compare.three_way.refwrap.refwrap_const.pass.cpp libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.const_ref.pass.cpp libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.refwrap.pass.cpp libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.refwrap_const.pass.cpp libcxx/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp libcxx/test/std/utilities/optional/optional.comp_with_t/greater.pass.cpp libcxx/test/std/utilities/optional/optional.comp_with_t/greater_equal.pass.cpp libcxx/test/std/utilities/optional/optional.comp_with_t/less_equal.pass.cpp libcxx/test/std/utilities/optional/optional.comp_with_t/less_than.pass.cpp libcxx/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp libcxx/test/std/utilities/optional/optional.relops/equal.pass.cpp libcxx/test/std/utilities/optional/optional.relops/greater_equal.pass.cpp libcxx/test/std/utilities/optional/optional.relops/greater_than.pass.cpp libcxx/test/std/utilities/optional/optional.relops/less_equal.pass.cpp libcxx/test/std/utilities/optional/optional.relops/less_than.pass.cpp libcxx/test/std/utilities/optional/optional.relops/not_equal.pass.cpp libcxx/test/std/utilities/utility/pairs/pairs.spec/comparison.pass.cpp libcxx/test/support/test_comparisons.h
``````````

</details>

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

``````````diff
diff --git a/libcxx/include/__functional/reference_wrapper.h b/libcxx/include/__functional/reference_wrapper.h
index 4b64b7ce2..c46203a4c 100644
--- a/libcxx/include/__functional/reference_wrapper.h
+++ b/libcxx/include/__functional/reference_wrapper.h
@@ -16,9 +16,9 @@
 #include <__memory/addressof.h>
 #include <__type_traits/desugars_to.h>
 #include <__type_traits/enable_if.h>
-#include <__type_traits/is_core_convertible.h>
 #include <__type_traits/invoke.h>
 #include <__type_traits/is_const.h>
+#include <__type_traits/is_core_convertible.h>
 #include <__type_traits/remove_cvref.h>
 #include <__type_traits/void_t.h>
 #include <__utility/declval.h>
diff --git a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.const_ref.pass.cpp b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.const_ref.pass.cpp
index 2e46cf8d1..316ff7c30 100644
--- a/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.const_ref.pass.cpp
+++ b/libcxx/test/std/utilities/function.objects/refwrap/refwrap.comparissons/equal.refwrap.const_ref.pass.cpp
@@ -25,7 +25,6 @@
 
 // Test SFINAE.
 
-
 static_assert(HasOperatorEqual<std::reference_wrapper<EqualityComparable>>);
 static_assert(HasOperatorEqual<std::reference_wrapper<EqualityComparable>, int>);
 
diff --git a/libcxx/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp b/libcxx/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp
index d7561fff4..54965b270 100644
--- a/libcxx/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp
+++ b/libcxx/test/std/utilities/optional/optional.comp_with_t/equal.pass.cpp
@@ -32,7 +32,7 @@ static_assert(HasOperatorEqual<std::optional<int>, int>);
 static_assert(HasOperatorEqual<std::optional<EqualityComparable>, int>);
 static_assert(HasOperatorEqual<std::optional<EqualityComparable>, EqualityComparable>);
 
-static_assert(!HasOperatorEqual<std::optional<NonComparable>,NonComparable>);
+static_assert(!HasOperatorEqual<std::optional<NonComparable>, NonComparable>);
 static_assert(!HasOperatorEqual<std::optional<EqualityComparable>, NonComparable>);
 
 #endif
diff --git a/libcxx/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp b/libcxx/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp
index 4c7dff699..97fb8ee44 100644
--- a/libcxx/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp
+++ b/libcxx/test/std/utilities/optional/optional.comp_with_t/not_equal.pass.cpp
@@ -28,12 +28,11 @@ static_assert(HasOperatorNotEqual<EqualityComparable, std::optional<EqualityComp
 static_assert(!HasOperatorNotEqual<NonComparable, std::optional<NonComparable>>);
 static_assert(!HasOperatorNotEqual<NonComparable, std::optional<EqualityComparable>>);
 
-
 static_assert(HasOperatorNotEqual<std::optional<int>, int>);
 static_assert(HasOperatorNotEqual<std::optional<EqualityComparable>, int>);
 static_assert(HasOperatorNotEqual<std::optional<EqualityComparable>, EqualityComparable>);
 
-static_assert(!HasOperatorNotEqual<std::optional<NonComparable>,NonComparable>);
+static_assert(!HasOperatorNotEqual<std::optional<NonComparable>, NonComparable>);
 static_assert(!HasOperatorNotEqual<std::optional<EqualityComparable>, NonComparable>);
 
 #endif
diff --git a/libcxx/test/std/utilities/optional/optional.relops/not_equal.pass.cpp b/libcxx/test/std/utilities/optional/optional.relops/not_equal.pass.cpp
index 0397e6b8f..1b7d2621c 100644
--- a/libcxx/test/std/utilities/optional/optional.relops/not_equal.pass.cpp
+++ b/libcxx/test/std/utilities/optional/optional.relops/not_equal.pass.cpp
@@ -31,7 +31,6 @@ static_assert(!HasOperatorNotEqual<std::optional<EqualityComparable>, std::optio
 
 #endif
 
-
 using std::optional;
 
 struct X {
diff --git a/libcxx/test/support/test_comparisons.h b/libcxx/test/support/test_comparisons.h
index 0f1505197..9add3c4e6 100644
--- a/libcxx/test/support/test_comparisons.h
+++ b/libcxx/test/support/test_comparisons.h
@@ -278,7 +278,6 @@ concept HasOperatorEqual = requires(T1 t1, T2 t2) { t1 == t2; };
 template <typename T1, typename T2 = T1>
 concept HasOperatorGreaterThan = requires(T1 t1, T2 t2) { t1 > t2; };
 
-
 template <typename T1, typename T2 = T1>
 concept HasOperatorGreaterThanEqual = requires(T1 t1, T2 t2) { t1 >= t2; };
 template <typename T1, typename T2 = T1>

``````````

</details>


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


More information about the libcxx-commits mailing list