[libcxx-commits] [PATCH] D129549: [libc++][ranges][NFC] Implement the repetitive parts of the remaining range algorithms:

Konstantin Varlamov via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Tue Jul 12 02:02:47 PDT 2022


var-const created this revision.
Herald added a subscriber: mgorny.
Herald added a project: All.
var-const requested review of this revision.
Herald added a project: libc++.
Herald added a subscriber: libcxx-commits.
Herald added a reviewer: libc++.

- create the headers (but not include them from `<algorithm>`);
- define the niebloid and its member functions with the right signatures (as no-ops);
- make sure all the right headers are included that are required by each algorithm's signature;
- update `CMakeLists.txt` and the module map;
- create the test files with the appropriate synopses.

The synopsis in `<algorithm>` is deliberately not updated because that
could be taken as a readiness signal. The new headers aren't included
from `<algorithm>` for the same reason.


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D129549

Files:
  libcxx/include/CMakeLists.txt
  libcxx/include/__algorithm/ranges_equal_range.h
  libcxx/include/__algorithm/ranges_generate.h
  libcxx/include/__algorithm/ranges_generate_n.h
  libcxx/include/__algorithm/ranges_includes.h
  libcxx/include/__algorithm/ranges_inplace_merge.h
  libcxx/include/__algorithm/ranges_is_heap.h
  libcxx/include/__algorithm/ranges_is_heap_until.h
  libcxx/include/__algorithm/ranges_next_permutation.h
  libcxx/include/__algorithm/ranges_partial_sort_copy.h
  libcxx/include/__algorithm/ranges_partition.h
  libcxx/include/__algorithm/ranges_partition_copy.h
  libcxx/include/__algorithm/ranges_partition_point.h
  libcxx/include/__algorithm/ranges_prev_permutation.h
  libcxx/include/__algorithm/ranges_remove_copy.h
  libcxx/include/__algorithm/ranges_remove_copy_if.h
  libcxx/include/__algorithm/ranges_replace_copy.h
  libcxx/include/__algorithm/ranges_replace_copy_if.h
  libcxx/include/__algorithm/ranges_rotate.h
  libcxx/include/__algorithm/ranges_set_symmetric_difference.h
  libcxx/include/__algorithm/ranges_set_union.h
  libcxx/include/__algorithm/ranges_shuffle.h
  libcxx/include/__algorithm/ranges_stable_partition.h
  libcxx/include/__algorithm/ranges_unique.h
  libcxx/include/__algorithm/ranges_unique_copy.h
  libcxx/include/module.modulemap.in
  libcxx/test/libcxx/private_headers.verify.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.generate/ranges_generate.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.generate/ranges_generate_n.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.partitions/ranges_partition.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.partitions/ranges_partition_copy.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.partitions/ranges_partition_point.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.partitions/ranges_stable_partition.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.random.shuffle/ranges_random_shuffle.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.remove/ranges_remove_copy.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.remove/ranges_remove_copy_if.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.replace/ranges_replace_copy.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.replace/ranges_replace_copy_if.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.rotate/ranges_rotate.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.unique/ranges_unique.pass.cpp
  libcxx/test/std/algorithms/alg.modifying.operations/alg.unique/ranges_unique_copy.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.binary.search/equal.range/ranges_equal_range.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/is.heap/ranges_is_heap.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.heap.operations/is.heap/ranges_is_heap_until.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.merge/ranges_inplace_merge.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.permutation.generators/ranges_next_permutation.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.permutation.generators/ranges_prev_permutation.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/includes/ranges_includes.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/ranges_set_symmetric_difference.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.set.operations/set.symmetric.difference/ranges_set_union.pass.cpp
  libcxx/test/std/algorithms/alg.sorting/alg.sort/partial.sort.copy/ranges_partial_sort_copy.pass.cpp
  libcxx/test/std/library/description/conventions/customization.point.object/niebloid.compile.pass.cpp

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D129549.443870.patch
Type: text/x-patch
Size: 136483 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20220712/949ce00c/attachment-0001.bin>


More information about the libcxx-commits mailing list