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

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

https://gcc.gnu.org/g:0ff3b3122adfe0c479901da4fc28e367d89f185b

commit r15-9659-g0ff3b3122adfe0c479901da4fc28e367d89f185b
Author: Patrick Palka <ppa...@redhat.com>
Date:   Tue Apr 29 08:21:35 2025 -0400

    libstdc++: Fix availability of std::erase_if(std::flat_foo) [PR119427]

    These std::erase_if overloads were wrongly implemented as hidden
    friends, visible only via ADL, so erase_if(x) would work but not
    std::erase_if(x).

            PR libstdc++/119427

    libstdc++-v3/ChangeLog:

            * include/std/flat_map (_Flat_map_impl::erase_if): Replace
            this hidden friend with ...
            (_Flat_map_impl::_M_erase_if): ... this member function.
            (flat_map): Export _Flat_map_impl::_M_erase_if.
            (erase_if(flat_map)): Define.
            (flat_multimap): Export _Flat_map_impl::_M_erase_if.
            (erase_if(flat_multimap)): Define.
            * include/std/flat_set (_Flat_set_impl::erase_if): Replace
            with ...
            (_Flat_set_impl::_M_erase_if): ... this member function.
            (flat_set): Export _Flat_set_impl::_M_erase_if.
            (erase_if(flat_set)): Define.
            (flat_multiset): Export _Flat_set_impl::_M_erase_if.
            (erase_if(flat_multiset)): Define.
            * testsuite/23_containers/flat_map/1.cc (test07): New test.
            * testsuite/23_containers/flat_multimap/1.cc (test07): New test.
            * testsuite/23_containers/flat_multiset/1.cc (test09): New test.
            * testsuite/23_containers/flat_set/1.cc (test09): New test.

    Reviewed-by: Jonathan Wakely <jwak...@redhat.com>
    (cherry picked from commit aa93272cfd2233858da0792761387cc27f4d5ff3)

Reply via email to