-
libstdc++: Replace deduced return type in ranges::iter_move (PR 92894) · 6fedf28c
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 <jwakely@redhat.com> Patrick Palka <ppalka@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 <ppalka@redhat.com>
Jonathan Wakely committed
Name |
Last commit
|
Last update |
---|---|---|
.. | ||
92894.cc | Loading commit data... | |
projected.cc | Loading commit data... |