On Mon, 22 Sept 2025 at 18:15, François Dumont <[email protected]> wrote:
>
> Some minor points spotted while working on the _GLIBCXX_DEBUG
> implementation.
>
> I'm surprised that gcc did not complained about the duplicated std::swap
> implementation. He seems to be smart enough to see that it is the same
> despite the different noexcept qualification.

No, they're not the same. The friend one is a non-template function
which is defined for every std::inplace_vector specialization, and the
one at namespace scope is a function template.

It's still correct to remove the one at namespace scope, but GCC is
right to not complain.

>      libstdc++: std::inplace_vector implementation cleaup
>
>      Remove duplicated std::swap implementations.
>
>      Remove use of std::ref in std::erase_if.
>
>      libstdc++-v3/ChangeLog
>
>              * include/std/inplace_vector: Remove refwrap.h include.
>              (std::swap(inplace_vector<>&, inplace_vector<>&)): Remove
> the duplicated
>              implementation at std namespace level. Keep the friend
> inline one.
>              (std::erase_if): Remove std::ref usage.
>
> 23_containers/inplace_vector tests run under Linux x86_64.
>
> Ok to commit ?

No, I'm already changing erase_if and erase in
https://forge.sourceware.org/gcc/gcc-TEST/pulls/78/commits/4d4a7dd885afca17a526caf504463310b3159587
which I'm about to push.

Reply via email to