implement `std::views::istream`
authorHui Xie <hui.xie1990@gmail.com>
Mon, 5 Sep 2022 15:45:47 +0000 (16:45 +0100)
committerHui Xie <hui.xie1990@gmail.com>
Thu, 6 Oct 2022 21:57:37 +0000 (22:57 +0100)
commit96a509bca28b8668c3c2c68aae4116cc0d8c2952
treecdf67a9fa314ab866cb5427864e649b6f4c2a9a1
parent6e7df70e5acb482b118b8d9a8957c0980a172e16
implement `std::views::istream`

implement `std::ranges::basic_istream_view` and `std::views::istream`. Although the view itself is constexpr,
the constructor argument is a base class std::istream where its ctor/dtor are not constexpr. So no tests are performed in
constexpr

Differential Revision: https://reviews.llvm.org/D133317
22 files changed:
libcxx/docs/Status/Cxx20Issues.csv
libcxx/docs/Status/Cxx20Papers.csv
libcxx/docs/Status/Cxx2bIssues.csv
libcxx/include/CMakeLists.txt
libcxx/include/__ranges/istream_view.h [new file with mode: 0644]
libcxx/include/module.modulemap.in
libcxx/include/ranges
libcxx/test/libcxx/private_headers.verify.cpp
libcxx/test/libcxx/ranges/range.factories/range.istream.view/no_unique_address.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/begin.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/cpo.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/ctor.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/end.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/general.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/iterator/compare.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/iterator/ctor.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/iterator/deref.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/iterator/increment.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/iterator/member_types.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/iterator/special_op.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/range.concept.compile.pass.cpp [new file with mode: 0644]
libcxx/test/std/ranges/range.factories/range.istream.view/utils.h [new file with mode: 0644]