Sto provando a creare un piccolo codice che funzioni su più piattaforme e compilatori. Uso asserzioni, la maggior parte delle quali possono essere disattivate, ma quando compili con pgicpp
di PGI usando -mp
per il supporto OpenMP, utilizza automaticamente l'opzione --no_exceptions
: ovunque nel mio codice con un'istruzione "throw" genera un errore fatale del compilatore. ("il supporto per la gestione delle eccezioni è disabilitato")Rileva compilatore con #ifdef
Esiste una macro define
d Posso verificare per nascondere le istruzioni throw
su IGP? Di solito lavoro con gcc, che ha GCC_VERSION
e simili. Non riesco a trovare alcuna documentazione che descriva queste macro in 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 –