https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115209
--- Comment #2 from GCC Commits <cvs-commit at gcc dot gnu.org> --- The master branch has been updated by Patrick Palka <ppa...@gcc.gnu.org>: https://gcc.gnu.org/g:8543dc52d84662e3fc0b8b6ac5e98ce13ebe9ad9 commit r15-7632-g8543dc52d84662e3fc0b8b6ac5e98ce13ebe9ad9 Author: Patrick Palka <ppa...@redhat.com> Date: Wed Feb 19 22:59:49 2025 -0500 libstdc++: Sync concat_view with final P2542 revision [PR115209] Our concat_view implementation is accidentally based off of an older revision of the paper, P2542R7 instead of R8. As far as I can tell the only semantic change in the final revision is the relaxed constraints on the iterator's iter/sent operator- overloads, which this patch updates. This patch also simplifies the concat_view::end wording via C++26 pack indexing as per the final revision. In turn we make the availability of this library feature conditional on __cpp_pack_indexing. (Note pack indexing is implemented in GCC 15 and Clang 19). PR libstdc++/115209 libstdc++-v3/ChangeLog: * include/bits/version.def (ranges_concat): Depend on __cpp_pack_indexing. * include/bits/version.h: Regenerate. * include/std/ranges (__detail::__last_is_common): Remove. (__detail::__all_but_first_sized): New. (concat_view::end): Use C++26 pack indexing instead of __last_is_common as per R8 of P2542. (concat_view::iterator::operator-): Update constraints on iter/sent overloads as per R8 of P2542. Reviewed-by: Jonathan Wakely <jwak...@redhat.com>