Обычно каждый компилятор предоставляет предопределенные макросы для определения платформы.Вы должны искать predefined macro
для конкретного компилятора.
Например: для MSVC предопределенные макросы находятся здесь здесь
Совместимо ли MACOS g ++?
ДаКомпилятор, который поставляется с пакетом инструментов Apple XCode, в основном g ++, но они немного его взломали.
(Правильно ли указана строка ниже?
#elif defined(Macintosh) || defined(__APPLE__) || defined(__MACH__)
Вам также нужно добавить
#elif defined(macintosh) || defined(Macintosh) || defined(__APPLE__) || defined(__MACH__)
Отметьте это специально здесь .
Этоправильный способ проверить, является ли компилятор MS Visual Studio - #if defined _MSC_VER
?
Да, согласно исключению из предопределенных макросов для ссылки MSVC, которую я дал выше.
Он оценивает компоненты старшего и младшего номеров в номере версии компилятора. Старший номер является первым компонентом номера версии, разделенного точками, а младший номер - вторым компонентом. Например, если номер версииVisual C++ compiler
равен 15.00.20706.01
, макрос _MSC_VER
оценивается как 1500
. В Visual Studio 2010
, _MSC_VER
определяетсянед. как 1600.