
コンパイルする際のコンパイラのバージョンや種類をマクロによって区別することができる。
__GNUC__が定義されている。
__GNUC__にはメジャーバージョン番号が、__GNUC_MINOR__にはマイナーバージョン番号が、__GNUC_PATCHLEVEL__にはパッチレベルが入っている。__GNUC_PATCHLEVEL__はGCC3より導入された。
例
#ifdef __GNUC__
cout<<"GNU C/C++ "<<__GNUC__<<"."<<__GNUC_MINOR__;
#ifdef__GNUC_PATCHLEVEL__
cout<<"."<<__GNUC_PATCHLEVEL__;
#endif
cout<<endl;
#endif
__INTEL_COMPILERが定義されている。
__INTEL_COMPILERには、マイナーバージョンも含めてバージョン番号を100倍した数値が入っている。
また、__INTEL_COMPILER_BUILD_DATEはビルドされた日付が入っている。
例
#ifdef __INTEL_COMPILER cout<<"Intel Compiler "<<__INTEL_COMPILER/100.0<<" build "<<__INTEL_COMPILER_BUILD_DATE<<endl; #endif
__BORLANDC__が定義されている。
__CUDACC__が定義されている。