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

--- Comment #12 from CVS Commits <cvs-commit at gcc dot gnu.org> ---
The releases/gcc-11 branch has been updated by Patrick Palka
<ppa...@gcc.gnu.org>:

https://gcc.gnu.org/g:f0d8d001d94166242be4387ca72fe0fc483860f1

commit r11-8613-gf0d8d001d94166242be4387ca72fe0fc483860f1
Author: Patrick Palka <ppa...@redhat.com>
Date:   Thu Jun 17 09:46:07 2021 -0400

    libstdc++: Non-triv-copyable extra args aren't simple [PR100940]

    This force-enables perfect forwarding call wrapper semantics whenever
    the extra arguments of a partially applied range adaptor aren't all
    trivially copyable, so as to avoid incurring unnecessary copies of
    potentially expensive-to-copy objects (such as std::function objects)
    when invoking the adaptor.

            PR libstdc++/100940

    libstdc++-v3/ChangeLog:

            * include/std/ranges (__adaptor::_Partial): For the "simple"
            forwarding partial specializations, also require that
            the extra arguments are trivially copyable.
            * testsuite/std/ranges/adaptors/100577.cc (test04): New test.

    (cherry picked from commit 2b87f3318cf6334a3a42dcf27f2fdec0fce04665)

Reply via email to