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

Arthur O'Dwyer via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Fri Nov 27 19:17:20 PST 2020


Quuxplusone created this revision.
Quuxplusone added reviewers: ldionne, zoecarver.
Quuxplusone added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.
Quuxplusone requested review of this revision.

These had been waiting on the ability to use `std::copy` from constexpr code (which in turn had been waiting on the ability to use `is_constant_evaluated()` to switch between `memmove` and non-`memmove` implementations of `std::copy`). That work landed a while ago, so these algorithms can all be constexpr in C++20 now.

While I'm in the area, update the tests so that the ones passing a custom predicate pass something other than the default `std::less`; and we don't need to hide the `constexpr` keyword behind `TEST_CONSTEXPR` in code that's already gated on C++20.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D92255

Files:
  libcxx/include/algorithm
  libcxx/test/std/algorithms/alg.sorting/alg.merge/merge.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.merge/merge_comp.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/includes/includes.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/includes/includes_comp.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.difference/set_difference.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.difference/set_difference_comp.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.intersection/set_intersection_comp.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/set_symmetric_difference.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/set_symmetric_difference_comp.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.union/set_union_comp.pass.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D92255.308132.patch
Type: text/x-patch
Size: 30752 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20201128/e83ff99e/attachment-0001.bin>


More information about the libcxx-commits mailing list