https://gcc.gnu.org/g:1e8ee6fa93caef91f518c4b6be0fb9b7d140abfd
commit r16-2777-g1e8ee6fa93caef91f518c4b6be0fb9b7d140abfd Author: Jakub Jelinek <ja...@redhat.com> Date: Tue Aug 5 08:27:05 2025 +0200 libstdc++: Remove 2 exports [PR121373] On Mon, Aug 04, 2025 at 11:33:17AM -0400, Patrick Palka wrote: > > @@ -1693,6 +1697,8 @@ export namespace std > > { > > using std::ranges::advance; > > using std::ranges::distance; > > + using std::ranges::iter_move; > > + using std::ranges::iter_swap; > > Actually a few lines above we already do: > > // _Cpo is an implementation detail we can't avoid exposing; if we do the > // using in ranges directly, it conflicts with any friend functions of the > // same name, which is why the customization points are in an inline > // namespace in the first place. > namespace ranges::inline _Cpo > { > using _Cpo::iter_move; > using _Cpo::iter_swap; > } > > So I think we don't want to export iter_move and iter_swap directly... Sorry > for not catching this sooner :/ Here is a patch which does that. 2025-08-05 Jakub Jelinek <ja...@redhat.com> PR libstdc++/121373 * src/c++23/std.cc.in (std::ranges::iter_move, std::ranges::iter_swap): Remove exports. Diff: --- libstdc++-v3/src/c++23/std.cc.in | 2 -- 1 file changed, 2 deletions(-) diff --git a/libstdc++-v3/src/c++23/std.cc.in b/libstdc++-v3/src/c++23/std.cc.in index 2300126a5b13..405bb6e7c1ce 100644 --- a/libstdc++-v3/src/c++23/std.cc.in +++ b/libstdc++-v3/src/c++23/std.cc.in @@ -1697,8 +1697,6 @@ export namespace std { using std::ranges::advance; using std::ranges::distance; - using std::ranges::iter_move; - using std::ranges::iter_swap; using std::ranges::next; using std::ranges::prev; }