libstdc++: Implement LWG 3569 changes to join_view::_Iterator
authorPatrick Palka <ppalka@redhat.com>
Tue, 13 Sep 2022 15:18:07 +0000 (11:18 -0400)
committerPatrick Palka <ppalka@redhat.com>
Tue, 13 Sep 2022 15:18:07 +0000 (11:18 -0400)
commit7aa80c82ecf3a320faca276b22b4a4286bbebacf
tree3cea2c4f6bb3316b9289c8a3abec59390065f7be
parentedf6fe7800369136c1a8ddcaf75a042a3a938c84
libstdc++: Implement LWG 3569 changes to join_view::_Iterator

libstdc++-v3/ChangeLog:

* include/std/ranges (join_view::_Iterator::_M_satisfy):
Adjust resetting _M_inner as per LWG 3569.
(join_view::_Iterator::_M_inner): Wrap in std::optional
as per LWG 3569.
(join_view::_Iterator::_Iterator): Relax constraints as
per LWG 3569.
(join_view::_Iterator::operator*): Adjust as per LWG 3569.
(join_view::_Iterator::operator->): Likewise.
(join_view::_Iterator::operator++): Likewise.
(join_view::_Iterator::operator--): Likewise.
(join_view::_Iterator::iter_move): Likewise.
(join_view::_Iterator::iter_swap): Likewise.
* testsuite/std/ranges/adaptors/join.cc (test14): New test.
libstdc++-v3/include/std/ranges
libstdc++-v3/testsuite/std/ranges/adaptors/join.cc