diff options
author | Patrick Palka <ppalka@redhat.com> | 2021-06-17 09:46:07 -0400 |
---|---|---|
committer | Patrick Palka <ppalka@redhat.com> | 2021-06-17 09:46:07 -0400 |
commit | 2b87f3318cf6334a3a42dcf27f2fdec0fce04665 (patch) | |
tree | 78afc686951f29d137c7725b3d71d345885645b6 /gcc/value-range.h | |
parent | 0f4a2fb44dad6c9c140226fc19ed16109b85e6f4 (diff) | |
download | gcc-2b87f3318cf6334a3a42dcf27f2fdec0fce04665.zip gcc-2b87f3318cf6334a3a42dcf27f2fdec0fce04665.tar.gz gcc-2b87f3318cf6334a3a42dcf27f2fdec0fce04665.tar.bz2 |
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.
Diffstat (limited to 'gcc/value-range.h')
0 files changed, 0 insertions, 0 deletions