https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112293
--- Comment #6 from Jonathan Wakely <redi at gcc dot gnu.org> --- (In reply to Jonathan Wakely from comment #1) > That would be difficult, because std::remove is overloaded and another > overload was found here (the one declared in <cstdio>). Usually we only > provide fix-it hints when name lookup doesn't find anything. This is also a very unusual case. Most C++ std::lib functions are not overloaded in C stdlib headers. Any change here would be quite specific to std::remove, possibly even unique. There's std::bind which collides with POSIX ::bind. There are also std::isalnum etc. but I don't think it's possible to get the problem there, since they're declared in the same header as the std::locale type that you call them with.