I я переношу библиотеку Windows на Android (с опцией библиотеки GNU Standard 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++", таких как как этот: «предупреждение C4996: 'itoa': имя POSIX для этого элемента устарело. Вместо этого используйте имя, совместимое с ISO C++: _itoa». Точно так же в руководстве GNU говорится: «Стандартная библиотека C++ GNU v3 - это текущий проект по реализации стандартной библиотеки C++ ISO 14882».
Так как же библиотеки получают такие разные имена? Как я могу определить, какие имена более «стандартны»?
Кроме того, есть ли где-нибудь индексlibstdc++-v3, то есть простой список всех функций в библиотеке? Я могу найти только руководствои "исходную документацию", в которых нет списка функций.