インテル® C++ コンパイラー 17.0 デベロッパー・ガイドおよびリファレンス

その他の事前定義済みマクロ

インテル® C++ コンパイラーは、以下の表の事前定義済みマクロをサポートします。 また、ISO/ANSI 標準で指定されている事前定義マクロもサポートします。

特に明記されている場合を除いて、マクロは IA-32 およびインテル® 64 アーキテクチャー・ベースのシステムでサポートされています。

マクロ 説明

__APPLE__

(OS X*)

'1'。

__APPLE_CC__

(OS X*)

gcc のビルド番号。

__ARRAY_OPERATORS

(Linux*)

'1'。

__AVX__

(Windows®、Linux*、OS X*)

Windows® では、/arch:AVX または /QxAVX 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。

Linux* では、-march=corei7-avx-mavx-xAVX 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。

インテル® アーキテクチャーを対象にコンパイルする場合のみ利用できます。

__AVX2__

(Windows®、Linux*、OS X*)

Windows® では、/arch:CORE-AVX2 または /QxCORE-AVX2 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。

Linux* では、-march=core-avx2 または -xCORE-AVX2 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。

インテル® アーキテクチャーを対象にコンパイルする場合のみ利用できます。

__AVX512BW__

(Windows®、Linux*、OS X*)

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) バイト命令およびワード命令をサポートしているプロセッサーの場合は '1'。

[Q]xCORE-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。

__AVX512CD__

(Windows®、Linux*、OS X*)

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 競合検出命令をサポートしているプロセッサーの場合は '1'。

[Q]xCORE-AVX512[Q]xCOMMON-AVX512[Q]xMIC-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。

__AVX512DQ__

(Windows®、Linux*、OS X*)

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) ダブルワード命令およびクワッドワード命令をサポートしているプロセッサーの場合は '1'。

[Q]xCORE-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。

__AVX512ER__

(Windows®、Linux*、OS X*)

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 指数および逆数命令をサポートしているプロセッサーの場合は '1'。

[Q]xMIC-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。

__AVX512F__

(Windows®、Linux*、OS X*)

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) 基本命令をサポートしているプロセッサーの場合は '1'。

[Q]xCORE-AVX512[Q]xCOMMON-AVX512[Q]xMIC-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。

__AVX512PF__

(Windows®、Linux*、OS X*)

インテル® アドバンスト・ベクトル・エクステンション 512 (インテル® AVX-512) プリフェッチ命令をサポートしているプロセッサーの場合は '1'。

[Q]xMIC-AVX512 以上のプロセッサー・ターゲット・オプションを指定した場合も '1'。

__AVX512VL__

(Windows®、Linux*、OS X*)

インテル® アドバンスト・ベクトル・エクステンション 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__

(OS X*)

'1'。

__EDG__

(Windows®、Linux*、OS X*)

'1'。

__EDG_VERSION__

(Windows®、Linux*、OS X*)

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*、OS X*)

'1'。

__i386__

__i386

i386

(Linux*、OS X*)

IA-32 アーキテクチャーを対象にコンパイルする場合は '1'。

__ICC

(Linux*、OS X*)

インテル® コンパイラーのバージョン。

このマクロは、-no-icc などのコンパイラー・オプションによる影響を受けます。

__ICL

(Windows®)

インテル® コンパイラーのバージョン 。

このマクロは、/Qicl- などのコンパイラー・オプションによる影響を受けます。

_INC_STDIO

(Windows®)

定義され、値はなし。

_INTEGRAL_MAX_BITS

(Windows®)

64。

__INTEL_COMPILER

(Linux*、OS X*)

インテル® コンパイラーのバージョン。

このマクロは、-no-icc などのコンパイラー・オプションによる影響を受けます。

__INTEL_COMPILER_BUILD_DATE

(Windows®、Linux*、OS X*)

インテル® コンパイラーのビルド日付を YYYYMMDD 形式で示します。ここで、YYYY は年、MM は月、DD は日です。

__INTEL_COMPILER_UPDATE

(Windows®、Linux*、OS X*)

インテル® コンパイラーの現在のマイナー・アップデート番号を示す 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 オプションの否定形、あるいは /Qmic (Windows®) または -mmic (Linux*) オプションを指定した場合は未定義。

このシンボルと [q または Q]offload オプションの否定形、あるいは /Qmic (Windows®) または -mmic (Linux*) を一緒に使用して、offload.homp_set_num_threads_target API 呼び出しのようにオフロードビルドでのみ実行されるホスト上のコードを保護できます。

__INTEL_RTTI__

(Linux*、OS X*)

-fno-rtti が指定されていない場合は '1'。

__INTEL_STRICT_ANSI__

(Linux*、OS X*)

-strict-ansi が指定されている場合は '1'。

__KNC__

(Windows®、Linux*)

__MIC__ に似ていますが、インテル® Xeon Phi™ コプロセッサー x100 製品ファミリー (開発コード名 Knights Corner) で実行するコードをビルドする際にコンパイラーによって定義されます。

__linux__

__linux

linux

(Linux*)

コンパイル開始時に '1' に定義されます。

__LITTLE_ENDIAN__

(OS X*)

'1'。

__LONG_DOUBLE_SIZE__

(Windows®、Linux*、OS X*)

Linux* および OS X* では 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__

(OS X*)

'1'。

__MIC__

(Windows®、Linux*)

インテル® MIC アーキテクチャー・ベースのコプロセッサーで実行するコードをビルドする場合は'1'。 デフォルトでは、コプロセッサーのコンパイル時に定義されます。

/Qmic (Windows®) または -mmic (Linux*) オプションは、インテル® MIC アーキテクチャーでネイティブに実行するアプリケーションをビルドするため、このオプションを指定した場合も '1'。

[q または Q]offload オプションの否定形を使用する場合は未定義。

このシンボルを使用して、コプロセッサー向けにコンパイルされ、コプロセッサー上でのみ実行されるようにコードを保護できます (インテル® MIC アーキテクチャー上でのみ実行可能な組込み関数や zmmintrins.h のような対応するヘッダーファイルなど)

コプロセッサー上で実行するコードをビルドするには、/Qmic コンパイラー・オプション (Windows®) または -mmic オプション (Linux*) を使用します。

__MMX__

(Linux*、OS X*)

'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

160040219 - Visual C++® 2010

_MSC_VER

(Windows®)

使用される Visual C++® のバージョン

1900 - Visual C++® 2015

1800 - Visual C++® 2013

1700 - Visual C++® 2012

1600 - Visual C++® 2010

_MT

(Windows®)

Windows® では、マルチスレッド DLL またはライブラリーを使用した場合 (/MD[d] または /MT[d] を指定した場合) は '1'。

__NO_INLINE__

__NO_MATH_INLINES

__NO_STRING_INLINES

(Linux*、OS X*)

'1'。

OFFLOAD_STATUS_INIT(statusvarname)

(Windows®、Linux*)

コードをオフロードする前に、offload プラグマの status 節の変数を既知の値に初期化します。

オフロード後、statusvarname を確認して、プラグマが実行されたかどうか、オフロードに成功したか失敗したか、および失敗した場合はその理由をチェックできます。

offload を参照。

_OPENMP

(Windows®、Linux*、OS X*)

[Q]openmp オプションを指定した場合 201511。

__OPTIMIZE__

(Linux*、OS X*)

'1'。

__pentium4

__pentium4__

(Linux*、OS X*)

'1'。

_PGO_INSTRUMENT

(Windows®、Linux*)

[Q]cov-gen または [Q]prof-gen を指定した場合 '1'。

__PIC__

__pic__

(Linux*、OS X*)

Linux* では、fPIC を指定した場合 '1'。

OS X* では '1'。 OS X* では __PIC__ のみ利用できます。

_PLACEMENT_DELETE

(Linux*)

'1'。

__PTRDIFF_TYPE__

(Linux*、OS X*)

Linux* では、IA-32 アーキテクチャーでは int、インテル® 64 アーキテクチャーでは long。

OS X* では int/long。

__QMSPP_

(Windows®、OS X*)

'1'。

__REGISTER_PREFIX__

(Linux*、OS X*)

__SIGNED_CHARS__

(Windows®、Linux*、OS X*)

'1'。

_SIZE_T_DEFINED

(Windows®)

定義され、値はなし。

__SIZE_TYPE__

(Linux*、OS X*)

Linux* では、IA-32 アーキテクチャーでは符号なし、インテル® 64 アーキテクチャーでは符号なし long。

OS X* では 符号なし long。

__SSE__

(Windows®、Linux*、OS X*)

Linux* および OS X* では、インテル® SSE 命令をサポートしているプロセッサーの場合は '1'。

Windows® では '1'。/arch:IA32 を指定した場合は未定義。

__SSE2__

(Windows®、Linux*、OS X*)

Linux* および OS X* では、インテル® SSE2 命令をサポートしているプロセッサーの場合は '1'。

Windows® では、デフォルトまたは /arch:SSE2/QxSSE2/QaxSSE2 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。

__SSE3__

(Windows®、Linux*、OS X*)

Linux* および OS X* では、インテル® SSE3 命令をサポートしているプロセッサーの場合は '1'。

Windows® では、/arch:SSE3 または /QxSSE3 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。

__SSE4_1__

(Windows®、Linux*)

Linux* では、インテル® SSE4 命令をサポートしているプロセッサーの場合は '1'。

Windows® では、/arch:SSE4 または /QxSSE4.1 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。

__SSE4_2__

(Windows®、Linux*)

Linux* では、インテル® SSE4.2 命令をサポートしているプロセッサーの場合は '1'。

Windows® では、/arch:SSE4 または /QxSSE4.2 以上のプロセッサー・ターゲット・オプションを指定した場合 '2'。

__SSSE3__

(Windows®、Linux*、OS X*)

Linux* および OS X* では、インテル® SSSE3 命令をサポートしているプロセッサーの場合は '1'。

Windows® では、/arch:SSSE3 または /QxSSSE3 以上のプロセッサー・ターゲット・オプションを指定した場合 '1'。

__STDC__

(OS X*)

'1'。

__STDC_HOSTED__

(OS X*)

'1'。

__TARGET_ARCH_MIC

(Windows®、Linux*)

オフロードコンパイル時にインテル® Xeon Phi™ コプロセッサー (開発コード名 Knights Landing) で実行するコードをビルドする場合は '1'。 -qoffload-arch=mic-avx512 (Linux*) または /Qoffload-arch=mic-avx512 (Windows®) を指定すると、デフォルトで定義されます。

このマクロを使用して、オフロード時にインテル® Xeon Phi™ コプロセッサー (開発コード名 Knights Landing) 向けにコンパイルおよび実行されるようにコードを保護できます。

unix

__unix

__unix__

(Linux*)

'1'。

__USER_LABEL_PREFIX__

(Linux*、OS X*)

_VA_LIST_DEFINED

(Windows®)

定義され、値はなし。

__VERSION__

(Linux*、OS X*)

インテル® C++ コンパイラーのバージョン文字列。

__w64

(Windows®)

定義され、値はなし。

__WCHAR_MAX__

(OS X*)

2147483647。

__WCHAR_T

(Linux*)

'1'。

_WCHAR_T_DEFINED

(Windows®)

Zc:wchar_t オプションを指定した場合、またはヘッダーファイルで "wctype_t" を定義した場合、定義されます。

__WCHAR_TYPE__

(Linux*、OS X*)

Linux* では、IA-32 アーキテクチャーでは long int、インテル® 64 アーキテクチャーでは int。

OS X* では long int。

_WCTYPE_T_DEFINED

(Windows®)

ヘッダーファイルで "wctype_t" を定義した場合、定義されます。

_WIN32

(Windows®)

IA-32 またはインテル® 64 アーキテクチャー向けにコードをビルドする場合は '1'。

_WIN64

(Windows®)

インテル® 64 アーキテクチャー向けにコードをビルドする場合は '1'。

__WINT_TYPE__

(Linux*、OS X*)

符号なし int。

__x86_64

__x86_64__

(Linux*、OS X*)

インテル® 64 アーキテクチャー向けにコードをビルドする場合は '1'。

関連情報