Implements parts of:
- P0896R4 The One Ranges Proposal
- LWG3446 indirectly_readable_traits ambiguity for types with both value_type and element_type
Depends on D99141.
Paths
| Differential D99461
[libcxx] adds `std::indirectly_readable_traits` to <iterator> ClosedPublic Authored by cjdb on Mar 27 2021, 7:55 PM.
Details
Summary Implements parts of:
Depends on D99141.
Diff Detail
Event Timeline
cjdb added a child revision: D99854: [libcxx] adds `cpp17-.*iterator` concepts for iterator_traits.Apr 3 2021, 10:33 PM cjdb marked an inline comment as done. Comment Actionsadds pragma to test to silence GCC warning
Comment Actions Contents of the patch LGTM, some comments on readability. This LGTM once addressed.
This revision now requires changes to proceed.Apr 14 2021, 9:13 AM cjdb marked 10 inline comments as done. Comment Actionsapplies feedback issued by @zoecarver and @ldionne Comment Actions Will merge after @ldionne green tick and @zoecarver clarifies a few points.
zoecarver removed a parent revision: D99141: [libcxx] adds `std::incrementable_traits` to <iterator>.Apr 15 2021, 9:03 AM Comment ActionsI removed the dependency on D99141 because it already landed. This was making the phab CLI confused. This revision is now accepted and ready to land.Apr 15 2021, 9:34 AM zoecarver removed a parent revision: D99141: [libcxx] adds `std::incrementable_traits` to <iterator>.Apr 15 2021, 9:58 AM
zoecarver removed a parent revision: D99141: [libcxx] adds `std::incrementable_traits` to <iterator>.Apr 15 2021, 12:59 PM
Closed by commit rGf280505aa084: [libcxx] adds `std::indirectly_readable_traits` to <iterator> (authored by cjdb). · Explain WhyApr 15 2021, 4:59 PM This revision was automatically updated to reflect the committed changes.
Revision Contents
Diff 337618 libcxx/docs/Cxx2aStatusIssuesStatus.csv
libcxx/include/iterator
libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_bidirectional_iterator.compile.pass.cpp
libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_forward_iterator.compile.pass.cpp
libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_input_iterator.compile.pass.cpp
libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_iterator.compile.pass.cpp
libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/legacy_random_access_iterator.compile.pass.cpp
libcxx/test/libcxx/iterators/iterator.requirements/iterator.assoc.types/iterator.traits/locale_dependent.compile.pass.cpp
libcxx/test/std/iterators/iterator.primitives/iterator.traits/iter_reference_t.compile.pass.cpp
libcxx/test/std/iterators/iterator.requirements/iterator.assoc.types/readable.traits/indirectly_readable_traits.compile.pass.cpp
|
Indent line 477 one level (two spaces). Ditto line 488.
(Please no objections along the lines of "but clang-format did it this way." We shouldn't check in misformatted code just because a machine produced it.)