Какие ресурсы существуют для помощи в написании кода на C / C ++, который работает на разных платформах и компиляторах? Например, я регулярно задаю себе вопросы типа:
- Какие макросы препроцессора автоматически определяются в различных компиляторах и средах? (например,
__GCC__
, WIN32
, __WIN32__
, __CYGWIN__
)
- Какие версии компиляторов и стандартных библиотек поддерживают относительно новые «стандартные» функции (например, длинные двойные тригонометрические функции C99 sinl (), cosl (), ...)
- Какие функции доступны на разных платформах для выполнения типовых задач, когда кажется, что не существует ни одной переносимой функции? (например, получение текущего времени с точностью до секунды)
Я часто пишу код, который должен компилироваться в Linux / gcc, cygwin, mingw32 и Visual Studio, и мне часто приходится сравнивать заметки из нескольких источников (справочные страницы Linux, MSDN, документы компилятора), чтобы получить необходимую мне информацию. Это должно быть проблемой, с которой постоянно сталкиваются разработчики - есть ли какие-либо ресурсы, которые компилируют эту информацию в легко усваиваемую ссылку?
(По этому вопросу меня не особо интересуют кроссплатформенные библиотеки, такие как wxWidgets или boost. Меня больше интересуют ресурсы или методы, которые помогут кому-нибудь написать свою собственную кроссплатформенную библиотеку или программу.)
РЕДАКТИРОВАТЬ: Это пример типа страницы, которую я ищу: http://predef.sourceforge.net/precomp.html. Хороший обзор различных компиляторов / сред и макросов препроцессора, которые можно использовать для их идентификации. Было бы здорово найти аналогичный ресурс, который сравнивал бы почти эквивалентные функции на разных платформах (например, gmtime_r () или ftime () в Linux против _gmtime_s () или _ftime () в Windows), когда не существует общей функции.