Это и вопрос, и ссылка, и я надеюсь, что люди смогут использовать это для повторного использования людьми с похожими вопросами.
Как мы можем надежно определить конкретную версию C/ C ++ / ObjC компилятор?Теперь я знаю ответ для Visual Studio и частично знаю ответ для Xcode.
Теперь для компилятора Visual Studio у нас есть _MSC_VER, который определяется следующими значениями:
Version 1.0 800
Version 2.0 900
Version 2.x 900
Version 4.0 1000
Version 5.0 1100
Version 6.0 1200
Version 7.0 1300
Version 7.1 1310
Version 8.0 1400 (Visual Studio 2005)
Version 9.0 1500 (Visual Studio 2008)
Version 10.0 1600 (Visual Studio 2010)
Version 11.0 1700 (Visual Studio 2012)
Теперь дляКомпилятор XCode у нас есть это определение:
__APPLE_CC__
Но единственные значения, которые мне удалось найти через Google (документы Mac, похоже, не имеют этих значений):
Xcode 3.0 5465
Xcode 3.1 5470
Xcode 3.1 (GCC 4.2) 5553
Xcode 3.2.3 5664 (Got this value from my own compiler)
Может ли кто-нибудь заполнить этот список или предоставить ссылки на полный список?И, возможно, мы можем предоставить информацию и другим компиляторам.