https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100639
--- Comment #4 from CVS Commits <cvs-commit at gcc dot gnu.org> --- The releases/gcc-10 branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>: https://gcc.gnu.org/g:c8bd39bc10eac3028dbf509b27457172360e6e8c commit r10-9902-gc8bd39bc10eac3028dbf509b27457172360e6e8c Author: Patrick Palka <ppa...@redhat.com> Date: Thu May 20 14:08:17 2021 -0400 libstdc++: Implement missing P0896R4 changes to reverse_iterator [PR100639] This implements the P0896R4 changes to reverse_iterator's member types value_type, difference_type and reference in C++20 mode, which fixes taking the reverse_iterator of an iterator with a non-integral difference_type (such as iota_view<long long>). libstdc++-v3/ChangeLog: PR libstdc++/100639 * include/bits/stl_iterator.h (reverse_iterator::difference_type): In C++20 mode, define in terms of iter_difference_t as per P0896R4. (reverse_iterator::reference): Likewise, but with iter_reference_t. (reverse_iterator::value_type): Likewise, but with iter_value_t. * testsuite/std/ranges/adaptors/reverse.cc (test08): New test. * testsuite/24_iterators/reverse_iterator/100639.cc: New test. (cherry picked from commit d5cbe0f0d4b7bc11f80b2236521f90ec94e95767)