diff options
author | Patrick Palka <ppalka@redhat.com> | 2025-03-13 09:15:21 -0400 |
---|---|---|
committer | Patrick Palka <ppalka@redhat.com> | 2025-03-13 09:15:21 -0400 |
commit | 50359c0a44381edb6dbd9359ef2ebdadbcc3ed42 (patch) | |
tree | 72b6ddb8034e770f9ce8fcfb11d244ea510501b8 /libstdc++-v3/testsuite | |
parent | e5d54c33a257b3f7137f8408592df009dffb5711 (diff) | |
download | gcc-50359c0a44381edb6dbd9359ef2ebdadbcc3ed42.zip gcc-50359c0a44381edb6dbd9359ef2ebdadbcc3ed42.tar.gz gcc-50359c0a44381edb6dbd9359ef2ebdadbcc3ed42.tar.bz2 |
libstdc++: Fix ref_view branch of views::as_const [PR119135]
Unlike for span<X> and empty_view<X>, the range_reference_t of
ref_view<X> doesn't correspond to X. This patch fixes the ref_view
branch of views::as_const to correctly query its underlying range
type X.
PR libstdc++/119135
libstdc++-v3/ChangeLog:
* include/std/ranges: Include <utility>.
(views::__detail::__is_ref_view): Replace with ...
(views::__detail::__is_constable_ref_view): ... this.
(views::_AsConst::operator()): Replace bogus use of element_type
in the ref_view branch.
* testsuite/std/ranges/adaptors/as_const/1.cc (test03): Extend
test.
Reviewed-by: Tomasz KamiĆski <tkaminsk@redhat.com>
Reviewed-by: Jonathan Wakely <jwakely@redhat.com>
Diffstat (limited to 'libstdc++-v3/testsuite')
-rw-r--r-- | libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc b/libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc index c36786a..3f1f8eb 100644 --- a/libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc +++ b/libstdc++-v3/testsuite/std/ranges/adaptors/as_const/1.cc @@ -63,6 +63,10 @@ test03() std::vector<int> v; std::same_as<ranges::ref_view<const std::vector<int>>> auto r = views::as_const(v); + + // PR libstdc++/119135 + std::same_as<ranges::ref_view<const std::vector<int>>> + auto r2 = views::as_const(views::all(v)); } int |