Esto es tanto una pregunta como una referencia y espero que las personas puedan aprovechar esto para que pueda ser reutilizado por personas con preguntas similares.Detección de versiones del compilador durante el tiempo de compilación
¿Cómo podemos detectar con fiabilidad una versión particular de un compilador C/C++/ObjC? Ahora sé la respuesta para Visual Studio y conozco parcialmente la respuesta para Xcode.
Ahora para el compilador de Visual Studio tenemos _MSC_VER que se define con estos valores:
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)
ya por el compilador Xcode tenemos esta definición:
__APPLE_CC__
Pero los únicos valores I' he podido encontrar a través de google (los documentos de Mac no parecen tener estos valores) son:
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)
Can an ¿completó esta lista o proporcionó enlaces a una lista completa? Y tal vez podamos proporcionar información para otros compiladores también.
Ni Visual Studio ni Xcode son compiladores: no debería preocuparse por su versión. – alternative
@mathepic Soy tan pedante como el próximo chico, pero ¿en serio? VS viene con una versión específica de los compiladores frontend para cada revisión del IDE, y expone esa versión a través de _MSC_VER; eso es lo que quiere –
Déjame aclararme entonces. Sí, ambos son IDE pero ambos vienen con sus propios compiladores, que es de lo que estaba hablando. Esperé que eso fuera claro a partir de mi mensaje. – Cthutu