Are all the functions in a conformant C++98/03/0x implementation completely C99 conformant?
I thought C++0x added some C99 (language) features, but never heard or read anything definitive about the C library functions.
Just to avoid any confusion, I'm talking about a C++ program using functions declared in the <c*> header set.
Thanks.
Most of the C99 standard library has been imported in C++0X but not all. From memory, in what wasn't imported there are
<ctgmath>simply includes<ccomplex>and<cmath>,<ccomplex>behaves as if it included<complex><cmath>has quite a few adjustment (providing overload and template functions completing the C99 provided one)<cstdbool>,<iso646.h>, ...) have adjustments to take differences between language into account (boolis primitive in C++, a macro provided by<stdbool.h>in C for instance), but nothing of the scope of the math part.The headers
<xxx.h>whose<cxx>form doesn't behaves as the C99 version simply declares the content of<cxxx>in the global namespace, they aren't nearer of the C99<xxx.h>content.A related thing: C++0X provides some headers in both cxxx and xxx.h forms which aren't defined in C99 (
<cstdalign>and<cuchar>, the second one is defined in a C TR)(I remembered that a bunch of mathematical functions from C99 had been put in TR1 but not kept in C++0X, I was mistaken, that bunch of mathematical functions weren't part of C99 in the first place).