使用#ifdef检测编译器

Set*_*son 8 c++ exception pgi c-preprocessor

我正在尝试构建一个适用于多个平台和编译器的小代码.我使用断言,其中大部分可以被关闭,但与PGI的编译时pgicpp使用-mp了支持OpenMP,它会自动使用该--no_exceptions选项:无处不在我的代码以"扔"语句生成一个致命编译器错误.("禁用异常处理支持")

有没有define我可以测试的宏来隐藏throwPGI上的语句?我经常使用gcc,有GCC_VERSION等等.我在PGI中找不到任何描述这些宏的文档.

Mic*_*urr 12

查看Sourceforge 上的预定义C/C++编译器宏项目.

PGI的编译器有一个__PGI宏.

另外,看一下libnuwen的 compiler.hh头文件,以便"标准化"编译器版本控制宏.