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

--- Comment #3 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:aa93272cfd2233858da0792761387cc27f4d5ff3

commit r16-282-gaa93272cfd2233858da0792761387cc27f4d5ff3
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>
  • [Bug libstdc++/119427] std::era... cvs-commit at gcc dot gnu.org via Gcc-bugs

Reply via email to