我正在将 Windows 库移植到 Android(使用 GNU 标准 C++ 库选项 libstdc++-v3),并且 VC 和 GNU 库之间似乎存在许多命名差异,例如:
_stricmp
strcasecmp
改为调用_unlink
叫做unlink
_scalb
叫做scalbn
_finite
叫做isfinite
_isnan
叫做isnan
_itoa
并且itoa
在 GNU C++ 中似乎不存在atoi
确实存在,但不存在atoi64
VC 和 GNU 库的文档都暗示它们实现了“ISO”C++,例如,我可以从 VC2008 中得到一些警告,因为它们没有使用“ISO C++”名称,例如:“warning C4996: 'itoa':不推荐使用此项目的 POSIX 名称。改为使用符合 ISO C++ 的名称:_itoa。同样,GNU 的手册说“GNU 标准 C++ 库 v3 是实施 ISO 14882 标准 C++ 库的持续项目”。
那么这些库是如何以这些不同的名称结束的呢?我怎么知道哪些名字更“标准”?
此外,是否有任何地方的 libstdc++-v3索引,即库中所有函数的简单列表?我只能找到一本手册和似乎没有提供功能列表的“源文档”。