Je suis en train de créer un petit code qui fonctionne sur plusieurs plates-formes et compilateurs. J'utilise des assertions, dont la plupart peuvent être désactivées, mais lors de la compilation avec pgicpp
de PGI en utilisant -mp
pour le support OpenMP, il utilise automatiquement l'option --no_exceptions
: partout dans mon code avec une instruction "throw" génère une erreur de compilation fatale. ("la gestion des exceptions est désactivée")Détecter le compilateur aveC#ifdef
Existe-t-il une macro define
d que je peux tester pour masquer les instructions throw
sur PGI? Je travaille habituellement avec gcc, qui a GCC_VERSION
et similaires. Je ne trouve aucune documentation décrivant ces macros dans PGI.
clang http://stackoverflow.com/questions/2658461/what-predefined-macro-can-i-use-to-detect-clang | VC http://stackoverflow.com/questions/15127522/how-to-ifdef-by-compilertype-gcc-or-vc –