Je suis en train d'écrire une macro similaire à ce qui suit:Déterminer LLVM GCC par rapport au moment de la compilation
#ifndef DEPRECATED_ATTRIBUTE_MESSAGE
#define DEPRECATED_ATTRIBUTE_MESSAGE(message) __attribute__((deprecated (message)))
#endif
Et cela fonctionne, mais seulement avec le compilateur d'Apple LLVM 3.0. Il brise au moment de la compilation pour quoi que ce soit d'autre sens que je dois dépouiller jusqu'à
#ifndef DEPRECATED_ATTRIBUTE_MESSAGE
#define DEPRECATED_ATTRIBUTE_MESSAGE(message) __attribute__((deprecated))
#endif
qui est beaucoup moins utile.
Ma question:
Je pense que la solution est d'appliquer une macro pour identifier la version du compilateur au moment de la compilation. Existe-t-il un moyen d'identifier le compilateur Apple LLVM 3.0 par rapport à LLVM GCC 4.2 ou GCC 4.2 (ou autre chose)?
Idéalement, je voudrais travailler quelque chose comme ça, mais je ne peux pas trouver la macro droit de le comprendre:
#ifdef [Apple LLVM 3.0]
#ifndef DEPRECATED_ATTRIBUTE_MESSAGE
#define DEPRECATED_ATTRIBUTE_MESSAGE(message) __attribute__((deprecated (message)))
#endif
#else
#ifndef DEPRECATED_ATTRIBUTE_MESSAGE
#define DEPRECATED_ATTRIBUTE_MESSAGE(message) __attribute__((deprecated))
#endif
#endif
Cela a totalement fonctionné. Merci. – Hyperbole