インテル® C++ コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
インテル® C++ コンパイラーは、以下の表の事前定義済みマクロをサポートします。また、ISO/ANSI 標準で指定されている事前定義マクロもサポートします。
特に明記されている場合を除いて、マクロは IA-32 およびインテル® 64 アーキテクチャー・ベースのシステムでサポートされています。
マクロ | 説明 |
---|---|
__APPLE__ (macOS*) |
'1'。 |
__APPLE_CC__ (macOS*) |
gcc のビルド番号 |
__ARRAY_OPERATORS (Linux*) |
'1'。 |
__AVX__ (Windows*、Linux*、macOS*) |
Windows* では、/arch:AVX または /QxAVX 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。 Linux* では、-march=corei7-avx、-mavx、-xAVX 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。 注インテル® アーキテクチャーを対象にコンパイルする場合のみ利用できます。 |
__AVX2__ (Windows*、Linux*、macOS*) |
Windows* では、/arch:CORE-AVX2 または /QxCORE-AVX2 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。 Linux* では、-march=core-avx2 または -xCORE-AVX2 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。 注インテル® アーキテクチャーを対象にコンパイルする場合のみ利用できます。 |
__AVX512BW__ (Windows*、Linux*、macOS*) |
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) バイト命令およびワード命令をサポートしているプロセッサーの場合は '1'。 [Q]xCORE-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。 |
__AVX512CD__ (Windows*、Linux*、macOS*) |
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 競合検出命令をサポートしているプロセッサーの場合は '1'。 [Q]xCORE-AVX512、[Q]xCOMMON-AVX512、[Q]xMIC-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。 |
__AVX512DQ__ (Windows*、Linux*、macOS*) |
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) ダブルワード命令およびクワッドワード命令をサポートしているプロセッサーの場合は '1'。 [Q]xCORE-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。 |
__AVX512ER__ (Windows*、Linux*、macOS*) |
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 指数および逆数命令をサポートしているプロセッサーの場合は '1'。 [Q]xMIC-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。 |
__AVX512F__ (Windows*、Linux*、macOS*) |
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 基本命令をサポートしているプロセッサーの場合は '1'。 [Q]xCORE-AVX512、[Q]xCOMMON-AVX512、[Q]xMIC-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。 |
__AVX512PF__ (Windows*、Linux*、macOS*) |
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) プリフェッチ命令をサポートしているプロセッサーの場合は '1'。 [Q]xMIC-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。 |
__AVX512VL__ (Windows*、Linux*、macOS*) |
インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) ベクトル長拡張命令をサポートしているプロセッサーの場合は '1'。 [Q]xCORE-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。 |
__BASE_FILE__ (Linux*) |
ソースファイルの名前 |
_BOOL (Linux*) |
'1'。 |
__cilk (Windows*、Linux*) |
'200'。ただし、[Q]cilk-serialize オプションまたは [Q]intel-extensions オプションの否定形を指定した場合、値は未定義です。 |
__COUNTER__ (Windows*) |
'0'。 |
__cplusplus (Linux*) |
'1' (C++ コンパイラーの場合)。 |
__DEPRECATED (Linux*) |
'1'。 |
__DYNAMIC__ (macOS*) |
'1'。 |
__EDG__ (Windows*、Linux*、macOS*) |
'1'。 |
__EDG_VERSION__ (Windows*、Linux*、macOS*) |
EDG のバージョン |
__ELF__ (Linux*) |
コンパイル開始時に '1' に定義されます。 |
__EXCEPTIONS (Linux*) |
fno-exceptions が指定されていない場合は '1' |
__gnu_linux__ (Linux*) |
コンパイル開始時に '1' に定義されます。 |
__GFX__ (Windows*、Linux*) |
このマクロを使用して、インテル® グラフィックス・テクノロジー向けにコンパイルし、実行するようにコードを保護できます。 デフォルトでは定義されています。CPU とターゲットで実行するコードをビルドできますが、このマクロはターゲットのコンパイルにのみ定義されます。 [q または Q]offload オプションの否定形を使用する場合は未定義。 |
__GNUC__ (Linux*) |
システムにインストールされている、または -gcc-name/-gxx-name で明示的に指定された gcc のメジャーバージョン番号 |
__GNUC_MINOR__ (Linux*) |
システムにインストールされている、または -gcc-name/-gxx-name で明示的に指定された gcc または g++ のマイナーバージョン番号 |
__GNUC_PATCHLEVEL__ (Linux*) |
システムにインストールされている、または -gcc-name/-gxx-name で明示的に指定された gcc または g++ のパッチレベルのバージョン番号 |
__GNUG__ (Linux*) |
システムにインストールされている、または -gcc-name/-gxx-name で明示的に指定された g++ のメジャーバージョン番号 |
__GXX_ABI_VERSION (Linux*) |
値は -fabi-version オプションに依存 (設定されている場合)。 102: -fabi-version=1 || gcc バージョン < 3.4 1008: gcc バージョン >= 5.0 999999: -fabi-version=0 100? (? は渡される -fabi-version の値): -fabi-version=2、3、4、5、6、7、8、9 1002: 3.5 < gcc バージョン < 5.0 |
__HONOR_STD (Linux*、macOS*) |
'1'。 |
__i386__ __i386 i386 (Linux*、macOS*) |
IA-32 アーキテクチャーを対象にコンパイルする場合は '1'。 |
__ICC (Linux*、macOS*) |
インテル® コンパイラーのバージョン 注このマクロは、-no-icc などのコンパイラー・オプションによる影響を受けます。 |
__ICL (Windows*) |
インテル® コンパイラーのバージョン 注このマクロは、/Qicl- などのコンパイラー・オプションによる影響を受けます。 |
_INC_STDIO (Windows*) |
定義され、値はなし |
_INTEGRAL_MAX_BITS (Windows*) |
64 |
__INTEL_COMPILER (Linux*、macOS*) |
インテル® コンパイラーのバージョン 注このマクロは、-no-icc などのコンパイラー・オプションによる影響を受けます。 |
__INTEL_COMPILER_BUILD_DATE (Windows*、Linux*、macOS*) |
インテル® コンパイラーのビルド日付を YYYYMMDD 形式で示します。ここで、YYYY は年、MM は月、DD は日です。 |
__INTEL_COMPILER_UPDATE (Windows*、Linux*、macOS*) |
インテル® コンパイラーの現在のマイナー・アップデート番号を示す 0 以上の値を返します。 インテル® コンパイラーの複数のアップデートがインストールされている場合、このマクロを使用してアップデートを区別できます。 例: インテル® C++ コンパイラー・バージョン XX.0.2 の場合、マクロは "2" に前処理されます。 |
__INTEL_CXX11_MODE__ (Windows*、Linux*) |
C++ プログラムで C++11 試験的サポートを有効にします。 [Q]std=c++11 オプションを指定した場合、'1' として定義されます。 |
__INTEL_MS_COMPAT_LEVEL (Windows*) |
'1'。 [Q]msn オプションの値 n と同じ |
__INTEL_OFFLOAD (Windows*、Linux*) |
CPU とプロセッサーで実行するコードをビルドする場合は'1'。 デフォルトでは定義されています。[q または Q]offload オプションの否定形を指定した場合は未定義。 このシンボルと [q または Q]offload オプションの否定形を一緒に使用して、offload.h の omp_set_num_threads_target API 呼び出しのようにオフロードビルドでのみ実行されるホスト上のコードを保護できます。 |
__INTEL_RTTI__ (Linux*、macOS*) |
-fno-rtti が指定されていない場合は '1' |
__INTEL_STRICT_ANSI__ (Linux*、macOS*) |
-strict-ansi が指定されている場合は '1' |
__linux__ __linux linux (Linux*) |
コンパイル開始時に '1' に定義されます。 |
__LITTLE_ENDIAN__ (macOS*) |
'1'。 |
__LONG_DOUBLE_SIZE__ (Windows*、Linux*、macOS*) |
Linux* および macOS* では 80。 Windows* では 64。/Qlong-double が指定された場合は 80。 |
__LONG_DOUBLE_64__ (Linux*) |
このマクロを定義すると、long double 型は 64 ビットになります。 -mlong-double-64 を指定すると定義されます。 |
__LONG_MAX__ (Linux*) |
9223372036854775807L 注インテル® アーキテクチャーを対象にコンパイルする場合のみ利用できます。 |
__LP64__ (Linux*) __LP64 (Linux*) |
'1'。 注インテル® アーキテクチャーを対象にコンパイルする場合のみ利用できます。 |
_M_AMD64 (Windows*) |
インテル® 64 アーキテクチャー向けにコードをビルドする場合は '1'。 |
_M_IX86 (Windows*) |
700 |
_M_X64 (Windows*) |
インテル® 64 アーキテクチャー向けにコードをビルドする場合は '1'。 |
__MACH__ (macOS*) |
'1'。 |
__MMX__ (Linux*、macOS*) |
'1'。 Linux* では、インテル® 64 アーキテクチャー・ベース・システムでのみ利用できます。 |
_MSC_EXTENSIONS (Windows*) |
'1'。 |
_MSC_FULL_VER (Windows*) |
使用される Visual C++* のバージョン 190022609 - Visual C++* 2015 1800210051 - Visual C++* 2013 170061030 - Visual C++* 2012 |
_MSC_VER (Windows*) |
使用される Visual C++* のバージョン 1900 - Visual C++* 2015 1800 - Visual C++* 2013 1700 - Visual C++* 2012 |
_MT (Windows*) |
Windows* では、マルチスレッド DLL またはライブラリーを使用した場合 (/MD[d] または /MT[d] を指定した場合) は '1'。 |
__NO_INLINE__ __NO_MATH_INLINES __NO_STRING_INLINES (Linux*、macOS*) |
'1'。 |
OFFLOAD_STATUS_INIT(statusvarname) (Windows*、Linux*) |
コードをオフロードする前に、offload プラグマの status 節の変数を既知の値に初期化します。 オフロード後、statusvarname を確認して、プラグマが実行されたかどうか、オフロードに成功したか失敗したか、および失敗した場合はその理由をチェックできます。 offload を参照。 |
_OPENMP (Windows*、Linux*、macOS*) |
[Q]openmp オプションを指定した場合 201611 |
__OPTIMIZE__ (Linux*、macOS*) |
'1'。 |
__pentium4 __pentium4__ (Linux*、macOS*) |
'1'。 |
_PGO_INSTRUMENT (Windows*、Linux*) |
[Q]cov-gen または [Q]prof-gen を指定した場合 '1' |
__PIC__ __pic__ (Linux*、macOS*) |
Linux* では、fPIC を指定した場合 '1'。 macOS* では '1'。macOS* では __PIC__ のみ利用できます。 |
_PLACEMENT_DELETE (Linux*) |
'1'。 |
__PTRDIFF_TYPE__ (Linux*、macOS*) |
Linux* では、IA-32 アーキテクチャーでは int、インテル® 64 アーキテクチャーでは long。 macOS* では int/long。 |
__QMSPP_ (Windows*、macOS*) |
'1'。 |
__REGISTER_PREFIX__ (Linux*、macOS*) |
|
__SIGNED_CHARS__ (Windows*、Linux*、macOS*) |
'1'。 |
_SIZE_T_DEFINED (Windows*) |
定義され、値はなし |
__SIZE_TYPE__ (Linux*、macOS*) |
Linux* では、IA-32 アーキテクチャーでは符号なし、インテル® 64 アーキテクチャーでは符号なし long。 macOS* では符号なし long。 |
__SSE__ (Windows*、Linux*、macOS*) |
Linux* および macOS* では、インテル® SSE 命令をサポートしているプロセッサーの場合は '1'。 Windows* では '1'。/arch:IA32 を指定した場合は未定義。 |
__SSE2__ (Windows*、Linux*、macOS*) |
Linux* および macOS* では、インテル® SSE2 命令をサポートしているプロセッサーの場合は '1'。 Windows* では、デフォルトまたは /arch:SSE2、/QxSSE2、/QaxSSE2 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。 |
__SSE3__ (Windows*、Linux*、macOS*) |
Linux* および macOS* では、インテル® SSE3 命令をサポートしているプロセッサーの場合は '1'。 Windows* では、/arch:SSE3 または /QxSSE3 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。 |
__SSE4_1__ (Windows*、Linux*) |
Linux* では、インテル® SSE4 命令をサポートしているプロセッサーの場合は '1'。 Windows* では、/arch:SSE4.1 または /QxSSE4.1 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。 |
__SSE4_2__ (Windows*、Linux*) |
Linux* では、インテル® SSE4.2 命令をサポートしているプロセッサーの場合は '1'。 Windows* では、/arch:SSE4.2 または /QxSSE4.2 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。 |
__SSSE3__ (Windows*、Linux*、macOS*) |
Linux* および macOS* では、インテル® SSSE3 命令をサポートしているプロセッサーの場合は '1'。 Windows* では、/arch:SSSE3 または /QxSSSE3 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。 |
__STDC__ (macOS*) |
'1'。 |
__STDC_HOSTED__ (macOS*) |
'1'。 |
__TARGET_ARCH_MIC (Windows*、Linux*) |
インテル® Xeon Phi™ プロセッサーで実行するコードをビルドする場合は'1'。デフォルトでは、インテル® MIC アーキテクチャー・ベースのプロセッサーのコンパイル時に定義されます。 [q または Q]offload オプションの否定形を使用する場合は未定義。 このシンボルを使用して、インテル® MIC アーキテクチャー・ベースのプロセッサー向けにコンパイルされ、同プロセッサー上でのみ実行されるようにコードを保護できます (インテル® Xeon Phi™ プロセッサー上でのみ実行可能な組込み関数や zmmintrins.h のような対応するヘッダーファイルなど)。 |
unix __unix __unix__ (Linux*) |
'1'。 |
__USER_LABEL_PREFIX__ (Linux*、macOS*) |
|
_VA_LIST_DEFINED (Windows*) |
定義され、値はなし |
__VERSION__ (Linux*、macOS*) |
インテル® C++ コンパイラーのバージョン文字列 |
__w64 (Windows*) |
定義され、値はなし |
__WCHAR_MAX__ (macOS*) |
2147483647 |
__WCHAR_T (Linux*) |
'1'。 |
_WCHAR_T_DEFINED (Windows*) |
Zc:wchar_t オプションを指定した場合、またはヘッダーファイルで "wctype_t" を定義した場合、定義されます。 |
__WCHAR_TYPE__ (Linux*、macOS*) |
Linux* では、IA-32 アーキテクチャーでは long int、インテル® 64 アーキテクチャーでは int。 macOS* では long int。 |
_WCTYPE_T_DEFINED (Windows*) |
ヘッダーファイルで "wctype_t" を定義した場合、定義されます。 |
_WIN32 (Windows*) |
IA-32 またはインテル® 64 アーキテクチャー向けにコードをビルドする場合は '1'。 |
_WIN64 (Windows*) |
インテル® 64 アーキテクチャー向けにコードをビルドする場合は '1'。 |
__WINT_TYPE__ (Linux*、macOS*) |
符号なし int。 |
__x86_64 __x86_64__ (Linux*、macOS*) |
インテル® 64 アーキテクチャー向けにコードをビルドする場合は '1'。 |