]> git.ipfire.org Git - thirdparty/gcc.git/commit
libstdc++: Implement LWG 3549 changes to ranges::enable_view
authorPatrick Palka <ppalka@redhat.com>
Tue, 19 Oct 2021 21:50:56 +0000 (17:50 -0400)
committerPatrick Palka <ppalka@redhat.com>
Tue, 19 Oct 2021 21:50:56 +0000 (17:50 -0400)
commit53b1c382d5a6fe8dec394a7ff820d77cda02af81
tree0d83a7ef695c6a0518df1700e88ccae59ceddaed
parentc6a1fdd6dde3a95997731c8339d70970aca67594
libstdc++: Implement LWG 3549 changes to ranges::enable_view

This patch also reverts r11-3504 since that workaround is now obsolete
after this resolution.

libstdc++-v3/ChangeLog:

* include/bits/ranges_base.h (view_interface): Forward declare.
(__detail::__is_derived_from_view_interface_fn): Declare.
(__detail::__is_derived_from_view_interface): Define as per LWG 3549.
(enable_view): Adjust as per LWG 3549.
* include/bits/ranges_util.h (view_interface): Don't derive from
view_base.
* include/std/ranges (filter_view): Revert r11-3504 change.
(transform_view): Likewise.
(take_view): Likewise.
(take_while_view): Likewise.
(drop_view): Likewise.
(drop_while_view): Likewise.
(join_view): Likewise.
(lazy_split_view): Likewise.
(split_view): Likewise.
(reverse_view): Likewise.
* testsuite/std/ranges/adaptors/sizeof.cc: Update expected sizes.
* testsuite/std/ranges/view.cc (test_view::test_view): Remove
this default ctor since views no longer need to be default initable.
(test01): New test.
libstdc++-v3/include/bits/ranges_base.h
libstdc++-v3/include/bits/ranges_util.h
libstdc++-v3/include/std/ranges
libstdc++-v3/testsuite/std/ranges/adaptors/sizeof.cc
libstdc++-v3/testsuite/std/ranges/view.cc