[英]Is the C part of the C++ library automatically C99?
符合C ++ 98/03 / 0x实现的所有函数是否完全符合C99?
我认为C ++ 0x添加了一些C99( 语言 )功能,但从未听过或读过任何关于C库函数的确定性。
为了避免任何混淆,我在谈论使用<c*>
标头集中声明的函数的C ++程序。
谢谢。
大多数C99标准库都是用C ++ 0X导入的,但不是全部。 从记忆中,在那里没有进口的东西
<ctgmath>
只包含<ccomplex>
和<cmath>
, <ccomplex>
表现得好像包含<complex>
<cmath>
有相当多的调整(提供过载和模板功能完成C99提供的一个) <cstdbool>
, <iso646.h>
,...)进行了调整以考虑语言之间的差异( bool
在C ++中是原始的,例如在C中由<stdbool.h>
提供的宏),但是没有数学部分的范围。 头<xxx.h>
的<cxx>
形式不像C99版本那样只是在全局命名空间中声明了<cxxx>
的内容,它们并不接近C99 <xxx.h>
内容。
相关的事情:C ++ 0X提供cxxx和xxx.h形式的一些头文件,这些头文件未在C99中定义( <cstdalign>
和<cuchar>
,第二个在C TR中定义)
(我记得C99中的一堆数学函数已放在TR1中,但没有保存在C ++ 0X中,我错了,一堆数学函数首先不是C99的一部分)。
No. C ++ 03与ANSI C89 / ISO C90对齐,而不是C99。
即将推出的C ++ 0x标准在某种程度上与C99保持一致。 参见当前草案中的第17.6.1.2段,其中列出了ccomplex
, cinttypes
, cstdint
等。请注意,正如AProgrammer所提到的,一些标题并不完全相同; 此外,标题cuchar
与C技术报告19769而不是C99对齐。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.