https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106676

--- Comment #14 from GCC Commits <cvs-commit at gcc dot gnu.org> ---
The master branch has been updated by Jonathan Wakely <r...@gcc.gnu.org>:

https://gcc.gnu.org/g:7f65f94917866c6b18d9698eec6451c1bf21e0f9

commit r15-4356-g7f65f94917866c6b18d9698eec6451c1bf21e0f9
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Sun Oct 13 22:28:16 2024 +0100

    libstdc++: Implement LWG 3798 for range adaptors [PR106676]

    LWG 3798 modified the iterator_category of the iterator types for
    transform_view, join_with_view, zip_transform_view and
    adjacent_transform_view, to allow the iterator's reference type to be an
    rvalue reference.

    libstdc++-v3/ChangeLog:

            PR libstdc++/106676
            * include/bits/iterator_concepts.h (__cpp17_fwd_iterator): Use
            is_reference instead of is_value_reference.
            rvalue references.
            * include/std/ranges (transform_view:__iter_cat::_S_iter_cat):
            Likewise.
            (zip_transform_view::__iter_cat::_S_iter_cat): Likewise.
            (adjacent_transform_view::__iter_cat::_S_iter_cat): Likewise.
            (join_with_view::__iter_cat::_S_iter_cat): Likewise.
            * testsuite/std/ranges/adaptors/transform.cc: Check
            iterator_category when the transformation function returns an
            rvalue reference type.

    Reviewed-by: Patrick Palka <ppa...@redhat.com>

Reply via email to