- adds sized_range and conformance tests
- moves disable_sized_range into namespace std::ranges
- removes explicit type parameter
Implements part of P0896 'The One Ranges Proposal'.
Paths
| Differential D102434
[libcxx][ranges] adds concept `sized_range` and cleans up `ranges::size` ClosedPublic Authored by cjdb on May 13 2021, 12:36 PM.
Details
Summary
Implements part of P0896 'The One Ranges Proposal'.
Diff Detail
Event Timelinecjdb added inline comments.
cjdb added inline comments.
This revision is now accepted and ready to land.May 18 2021, 12:26 PM
cjdb added inline comments.
cjdb added a child revision: D102789: [libcxx][iterator] adds `std::ranges::distance`.May 19 2021, 10:55 AM Closed by commit rGd8fad6614923: [libcxx][ranges] adds concept `sized_range` and cleans up `ranges::size` (authored by cjdb). · Explain WhyMay 19 2021, 11:17 AM This revision was automatically updated to reflect the committed changes. cjdb marked an inline comment as done.
Revision Contents
Diff 345255 libcxx/include/__ranges/concepts.h
libcxx/include/__ranges/size.h
libcxx/include/ranges
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/range.prim/empty.pass.cpp
libcxx/test/std/ranges/range.access/range.prim/size.pass.cpp
libcxx/test/std/ranges/range.range/enable_borrowed_range.compile.pass.cpp
libcxx/test/std/ranges/range.range/helper_aliases.compile.pass.cpp
libcxx/test/std/ranges/range.range/iterator_t.compile.pass.cpp
libcxx/test/std/ranges/range.range/range.compile.pass.cpp
libcxx/test/std/ranges/range.range/sentinel_t.compile.pass.cpp
libcxx/test/std/ranges/range.refinements/bidirectional_range.compile.pass.cpp
libcxx/test/std/ranges/range.refinements/common_range.compile.pass.cpp
libcxx/test/std/ranges/range.refinements/forward_range.compile.pass.cpp
libcxx/test/std/ranges/range.refinements/input_range.compile.pass.cpp
libcxx/test/std/ranges/range.refinements/random_access_range.compile.pass.cpp
libcxx/test/std/ranges/range.refinements/subsumption.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.range/enable_borrowed_range.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.range/helper_aliases.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.range/iterator_t.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.range/range.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.range/sentinel_t.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.refinements/bidirectional_range.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.refinements/common_range.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.refinements/forward_range.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.refinements/input_range.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.refinements/random_access_range.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.refinements/subsumption.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.sized/sized_range.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.sized/subsumption.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.view/enable_view.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.view/view.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.view/view.subsumption.compile.pass.cpp
libcxx/test/std/ranges/range.req/range.view/view_base.compile.pass.cpp
libcxx/test/std/ranges/range.view/enable_view.compile.pass.cpp
libcxx/test/std/ranges/range.view/view.compile.pass.cpp
libcxx/test/std/ranges/range.view/view.subsumption.compile.pass.cpp
libcxx/test/std/ranges/range.view/view_base.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
|
Not part of your changes, but can you use a triple underscore? _LIBCPP_RANGES_CONCEPTS_H -> _LIBCPP___RANGES_CONCEPTS_H