我希望在Linux上使用英特尔当前的编译器。我有一个内联宏,应该可以检测编译器。
过去的GCC和ICC版本都可以正常工作,但现在我用ICC会得到extern inline
。ICC是否现在定义了__GNUC__
?如何检测ICC或英特尔的C++编译器ICPC?
#ifndef INLINE
# if defined(__GNUC__) || defined(__GNUG__)
# define INLINE extern inline
# else
# define INLINE inline
# endif
#endif
__GNUC__
因为__GNUC__
并不意味着“我是GCC”,而是表示“我是一个‘GNU C’语言编译器(标准C的超集)”。 - R.. GitHub STOP HELPING ICEextern inline
,但是对于最新版本的gcc,这种技巧应该是不必要的。 - Paul R