[libcxx][iterator] adds `std::indirectly_readable` and `std::indirectly_writable`
authorChristopher Di Bella <cjdb@google.com>
Wed, 21 Apr 2021 16:41:13 +0000 (16:41 +0000)
committerChristopher Di Bella <cjdb@google.com>
Wed, 21 Apr 2021 17:14:28 +0000 (17:14 +0000)
commit04733181b5136e2b3df2b37c6bdd9e25f8afecd0
tree0fb89b70ade7acc944b05522e3ac9607c5de8075
parent89b59345ee29d2cc1afa1f60445916ae2e74be6d
[libcxx][iterator] adds `std::indirectly_readable` and `std::indirectly_writable`

Implements parts of:
    * P0896R4 The One Ranges Proposal`

Depends on D99873.

Reviewed By: ldionne, #libc

Differential Revision: https://reviews.llvm.org/D100073
41 files changed:
libcxx/include/__iterator/concepts.h
libcxx/include/__iterator/incrementable_traits.h
libcxx/include/__iterator/iter_move.h
libcxx/include/__iterator/iterator_traits.h
libcxx/include/__iterator/readable_traits.h
libcxx/include/iterator
libcxx/test/std/containers/associative/map/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/associative/multimap/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/associative/multiset/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/associative/set/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/array/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/deque/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/forwardlist/forwardlist.iter/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/list/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/vector.bool/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/sequences/vector/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/unord/unord.map/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/unord/unord.multimap/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/unord/unord.multiset/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/unord/unord.set/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/containers/views/span.iterators/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/input.output/filesystems/class.directory_iterator/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.readable/indirectly_readable.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/iterators/iterator.requirements/iterator.concepts/iterator.concept.writable/indirectly_writable.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/iterators/predef.iterators/insert.iterators/back.insert.iterator/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/iterators/predef.iterators/insert.iterators/front.insert.iterator/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/iterators/predef.iterators/insert.iterators/insert.iterator/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/iterators/predef.iterators/move.iterators/move.iterator/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/iterators/predef.iterators/reverse.iterators/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/iterators/stream.iterators/istream.iterator/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/iterators/stream.iterators/istreambuf.iterator/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/iterators/stream.iterators/ostream.iterator/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/iterators/stream.iterators/ostreambuf.iterator/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/re/re.iter/re.regiter/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/re/re.iter/re.tokiter/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/strings/basic.string/string.iterators/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/strings/string.view/string.view.iterators/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/utilities/memory/unique.ptr/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/utilities/memory/util.smartptr/util.smartptr.shared/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/utilities/optional/iterator_concept_conformance.compile.pass.cpp [new file with mode: 0644]
libcxx/test/support/read_write.h [new file with mode: 0644]