[英]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.