They should. Perhaps he was using a non-conformant C++ library?ilari wrote:Actually none of the C libraries (including cstring) needs the namespace qualifier. Otherwise Roy's compile would have failed
http://www.cplusplus.com/reference/clibrary/
Also take a look at the C++ standard (ISO/IEC 14882:1998(E)) pg319, Section 17.4.12 Headers clause 4:The C++ library includes the same definitions as the C language library organized in the same structure of header files, with the following differences:
* Each header file has the same name as the C language version but with a "c" prefix and no extension. For example, the C++ equivalent for the C language header file <stdlib.h> is <cstdlib>.
* Every element of the library is defined within the std namespace.
Nevertheless, for compatibility with C, the traditional header names name.h (like stdlib.h) are also provided with the same definitions within the global namespace. In the examples provided in this reference, this version is used so that the examples are fully C-compatible, although its use is deprecated in C++.
Except as noted in clauses 18 through 27, the contents of each header cname shall be the same as that of the corresponding header name.h, as specified in ISO/IEC 9899:1990 Programming Languages C (Clause 7), or ISO/IEC:1990 Programming Languages--C AMENDMENT 1: C Integrity, (Clause 7), as appropriate, as if by inclusion. In the C++ Standard Library, however, the declarations and definitions (except for names which are defined as macros in C) are within namespace scope (3.35) of the namespace std.