Je voudrais inclure un fichier différent en fonction de la version de GCC. Plus précisément, je veux écrire:Comment tester au moment de la compilation la version actuelle de GCC?
#if GCC_VERSION >= 4.2
# include <unordered_map>
# define EXT std
#elif GCC_VERSION >= 4
# include <tr1/unordered_map>
# define EXT std
#else
# include <ext/hash_map>
# define unordered_map __gnu_cxx::hash_map
# define EXT __gnu_cxx
#endif
Je ne me soucie pas de gcc avant 3.2.
Remarque: Je suis assez sûr qu'il y a une variable définie au moment du pré-traitement pour cela, je ne peux pas le trouver à nouveau.
Malheureusement, ce code échoue avec le compilateur clang, qui définit '__GNUC__', mais n'inclut pas' features.h'. – Gil
Eh bien, ce code est de connaître la version de GCC, il n'est donc pas surprenant qu'il échoue si clang usurper partiellement GCC. – PierreBdR
Désolé, il semble que j'avais tort. L'include 'features.h' est simplement une chose spécifique à Linux, et ne devrait pas être utilisé pour du code qui est destiné à être compilé sur d'autres plateformes. – Gil