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

--- Comment #10 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-10 branch has been updated by Jonathan Wakely
<r...@gcc.gnu.org>:

https://gcc.gnu.org/g:6fedf28c7921f125be75a9f688a7b845a1b5663b

commit r10-8121-g6fedf28c7921f125be75a9f688a7b845a1b5663b
Author: Jonathan Wakely <jwak...@redhat.com>
Date:   Thu May 7 17:39:56 2020 +0100

    libstdc++: Replace deduced return type in ranges::iter_move (PR 92894)

    The deduced return type causes the instantiation of the function body,
    which can then require the instantiation of std::projected::operator*
    which is intentionally not defined.

    This patch uses a helper trait to define the return type, so that the
    function body doesn't need to be instantiated.

    Unlike on the master branch, this backport to gcc-10 does not change the
    iter_rvalue_reference_t alias template and __indirectly_readable_impl
    concept to use the new trait.

    Backport from mainline
    2020-05-01  Jonathan Wakely  <jwak...@redhat.com>
                Patrick Palka  <ppa...@redhat.com>

            PR libstdc++/92894
            * include/bits/iterator_concepts.h (ranges::__cust_imove::_IMove):
            Add trait to determine return type and an alias for it.
            (ranges::__cust_imove::_IMove::operator()): Use __result instead of
            deduced return type.
            * testsuite/24_iterators/customization_points/92894.cc: New test.
            * testsuite/24_iterators/indirect_callable/92894.cc: New test.

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

Reply via email to