[libcxx-commits] [PATCH] D100255: [libcxx] adds `range` access CPOs

Christopher Di Bella via Phabricator via libcxx-commits libcxx-commits at lists.llvm.org
Sat Apr 24 12:09:33 PDT 2021


cjdb updated this revision to Diff 340307.
cjdb marked 8 inline comments as done.
cjdb added a comment.

- adds extra underscores to headers to make it `_LIBCPP___RANGES_*` (@zoecarver)
- makes lvalue arrays of incomplete types SFINAE-unfriendly (verification tests added) (@tcanens)
- removes `_LIBCPP_NOEXCEPT_RETURN` (@ldionne)
  - makes `__decay_copy` conditionally noexcept in C++20 mode
- adds conformance tests for all ranges for `std::iterator_t`
  - `std::ranges::begin` is implicitly tested by `std::ranges::iterator_t`
  - `std::ranges::end` is implicitly tested by `std::ranges::sentinel_t`, which is added in D
- adds test for ODR violation (@zoecarver)
- sorts headers in CMakeLists.txt (@mordante)


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D100255

Files:
  libcxx/include/CMakeLists.txt
  libcxx/include/__ranges/begin.h
  libcxx/include/__ranges/cbegin.h
  libcxx/include/__ranges/cend.h
  libcxx/include/__ranges/end.h
  libcxx/include/module.modulemap
  libcxx/include/ranges
  libcxx/include/type_traits
  libcxx/test/libcxx/ranges/range.access/access.h
  libcxx/test/libcxx/ranges/range.access/range.access.begin/begin.compile.pass.cpp
  libcxx/test/libcxx/ranges/range.access/range.access.begin/incomplete.compile.verify.cpp
  libcxx/test/libcxx/ranges/range.access/range.access.end/end.compile.pass.cpp
  libcxx/test/libcxx/ranges/range.access/range.access.end/incomplete.compile.verify.cpp
  libcxx/test/std/containers/associative/map/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/associative/multimap/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/associative/multiset/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/associative/set/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/sequences/array/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/sequences/deque/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/sequences/forwardlist/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/sequences/list/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/sequences/vector.bool/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/sequences/vector/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/unord/unord.map/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/unord/unord.multimap/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/unord/unord.multiset/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/unord/unord.set/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/containers/views/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/input.output/filesystems/class.directory_iterator/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/input.output/filesystems/class.path/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/ranges/range.access/array_access.h
  libcxx/test/std/ranges/range.access/member_access.h
  libcxx/test/std/ranges/range.access/range.access.begin/array_access.pass.cpp
  libcxx/test/std/ranges/range.access/range.access.begin/member_access.pass.cpp
  libcxx/test/std/ranges/range.access/range.access.begin/unqualified_lookup.pass.cpp
  libcxx/test/std/ranges/range.access/range.access.cbegin/array_access.pass.cpp
  libcxx/test/std/ranges/range.access/range.access.cbegin/member_access.pass.cpp
  libcxx/test/std/ranges/range.access/range.access.cbegin/unqualified_lookup.pass.cpp
  libcxx/test/std/ranges/range.access/range.access.cend/array_access.pass.cpp
  libcxx/test/std/ranges/range.access/range.access.cend/member_access.pass.cpp
  libcxx/test/std/ranges/range.access/range.access.cend/unqualified_lookup.pass.cpp
  libcxx/test/std/ranges/range.access/range.access.end/array_access.pass.cpp
  libcxx/test/std/ranges/range.access/range.access.end/member_access.pass.cpp
  libcxx/test/std/ranges/range.access/range.access.end/unqualified_lookup.pass.cpp
  libcxx/test/std/ranges/range.access/unqualified_lookup_access.h
  libcxx/test/std/ranges/range.range/iterator_t.compile.pass.cpp
  libcxx/test/std/re/re.results/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/strings/basic.string/range_concept_conformance.compile.pass.cpp
  libcxx/test/std/strings/string.view/range_concept_conformance.compile.pass.cpp
  libcxx/test/support/test_macros.h
  libcxx/test/support/test_range.h

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D100255.340307.patch
Type: text/x-patch
Size: 89981 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/libcxx-commits/attachments/20210424/47d417eb/attachment-0001.bin>


More information about the libcxx-commits mailing list