[libcxx-commits] [PATCH] D92255: [libc++] [P0202] constexpr set_union, set_difference, set_symmetric_difference, merge

Zoe Carver via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Thu Dec 3 12:50:56 PST 2020


zoecarver added a comment.

Thanks for all the test overhaul! Probably better done as a follow-up patch, but this format will make it easier to add move-only tests.



================
Comment at: libcxx/test/std/algorithms/alg.sorting/alg.merge/merge.pass.cpp:48
+    friend TEST_CONSTEXPR bool operator<(const NonTrivial& a, const NonTrivial& b) {
+        return a.value / 10 < b.value / 10;
+    }
----------------
Why do we divide this by 10? Let's make these tests as simple as possible. 

Nit: no friend, no pass-by-reference. 


================
Comment at: libcxx/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp:9
 
-// Older compilers don't support std::is_constant_evaluated
-// UNSUPPORTED: clang-4, clang-5, clang-6, clang-7, clang-8
-// UNSUPPORTED: apple-clang-9, apple-clang-10
+// UNSUPPORTED: clang-8
 
----------------
What happened to all the other unsupported compilers? 


================
Comment at: libcxx/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp:44
+
+struct NonTrivial {
+    int value;
----------------
Can we put these all into a header?


================
Comment at: libcxx/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp:61
+#if TEST_STD_VER >= 11
+static_assert(std::is_trivially_copyable<Trivial>::value, "");
+static_assert(!std::is_trivially_copyable<NonTrivial>::value, "");
----------------
I think these will work in C++03. 


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D92255/new/

https://reviews.llvm.org/D92255



More information about the libcxx-commits mailing list