The C++ standard defines the C headers such as <string.h> and <wchar.h> in terms of their C++ versions such as <cstring> and <cwchar>, which in turn are defined in terms of the headers in the C standard. Thus, <string.h> and <wchar.h> require the function overloads for functions such as strchr and wcschr that are defined to be in <cstring> and <cwchar>. However, libstdc++ defines these only in <cstring> and <cwchar>, not in <string.h> and <wchar.h>. libstdc++ needs to wrap the headers provided by the C library, or otherwise cooperate with glibc and other C library implementations, to get the required C++ definitions in place. This is different from bug 6257, and unlike that bug this one appears still to be a bug with the current C++0x draft.
Yes, in some sense the resolution of DR 456 doesn't consider strchr and co. Some time ago I mentioned that in private email with Howard but then didn't really pursue it. Will do, maybe at one of the next C++ meetings.
Confirmed.
This is really the same as libstdc++/30928. *** This bug has been marked as a duplicate of 30928 ***
Let's keep this one open instead, as a reminder that the libcs of non-GNU targets have to provide a mechanism similar to the one used by recent glibcs: http://gcc.gnu.org/viewcvs?view=revision&revision=143773 and which we can exploit in the C++ library.
*** Bug 49020 has been marked as a duplicate of this bug. ***