我移植一個Windows庫到Android(與GNU標準C++庫選項,的libstdC++ - v3)和那裏似乎是VC和GNU庫之間的許多命名的差異,例如:爲什麼Windows和Linux之間的標準庫函數名稱不同?
_stricmp
被稱爲strcasecmp
而不是_unlink
被稱爲unlink
_scalb
被稱爲scalbn
_finite
被稱爲isfinite
_isnan
被稱爲isnan
_itoa
和itoa
似乎並沒有在GNU C++存在atoi
確實存在,但不是atoi64
兩個VC和GNU庫的文檔意味着他們實施「ISO 「例如,我可以從VC2008中獲得一些警告,不使用」ISO C++「名稱,例如:」警告C4996:'itoa':不推薦使用此項目的POSIX名稱。相反,使用ISO C++一致性名稱:_itoa。「同樣,GNU的手冊中說」GNU標準C++庫v3是一個正在進行的項目,用於實現ISO 14882標準C++庫「
那麼庫如何結束?不同的名字,我怎麼知道哪個名字更「標準」
此外,有沒有一個指數的libstdC++ - V3的任何地方,即庫中的所有功能,一個簡單的列表,我只能找到一個manual和「source documentation」,它似乎沒有提供功能列表。
其中有幾個不在C++標準庫中,所以在這些情況下,都不是「標準」。 – 2012-03-27 19:37:26
微軟正在試圖通過將其非標準功能命名爲前導下劃線來保持一致。 – 2012-03-27 19:46:14
MSVC中的'_atoi64'在GCC中被稱爲'atoll'。 – dan04 2012-03-29 23:35:30