Estoy tratando de detectar el compilador utilizado para compilar mi código fuente. Puedo encontrar fácilmente macros predefinidas para buscar MSVC o GCC (ver http://predef.sourceforge.net/ por ejemplo), pero no puedo encontrar ninguna macro para verificar si hay clang.
¿Alguien sabe si clang define una macro como __CLANG__para saber qué está compilando actualmente mi código?
                    
                        c
                                macros
                                clang
                                c-preprocessor
                                
                    
                    
                        Pierre Bourdon
fuente
                
                fuente

Respuestas:
Para obtener una lista de todas las macros predefinidas que usa el compilador, use esto:
Puedes hacer lo mismo con gcc.
fuente
Encontré la respuesta usando
strings+grep:fuente
Esta pregunta ha sido respondida durante años, pero permítame agregar (para referencia futura) cómo se hace en Windows :
lo mismo que para GCC:
Tenga en cuenta: ¡El último guión
-es realmente importante! (De lo contrario, obtieneserror: no input filespara ambos compiladores)fuente
/dev/nullesNUL:/dev/nulles más trabajo.