インテル® C++ コンパイラー 15.0 ユーザー・リファレンス・ガイド
インテル® C++ コンパイラーは、以下の表の事前定義済みマクロをサポートします。また、ISO/ANSI 標準で指定されている事前定義マクロもサポートします。
特に明記されている場合を除いて、マクロは IA-32 およびインテル® 64 アーキテクチャー・ベースのシステムでサポートされています。
マクロ |
説明 |
---|---|
__APPLE__ (OS X*) |
1 |
__APPLE_CC__ (OS X*) |
gcc* のビルド番号 |
__ARRAY_OPERATORS (Linux*) |
1 |
__AVX__ (Windows*、Linux*) |
arch:AVX (Windows*)、march=corei7-avx または mavx (Linux*)、[Q]xAVX 以上のプロセッサー・ターゲット・オプションを指定した場合、定義され、値は '1' になります。 注インテル® 64 アーキテクチャー・ベース・システムでのみ利用可能 |
__AVX2__ (Windows*、Linux*) |
arch:CORE-AVX2 (Windows*)、march=core-avx2 (Linux*)、[Q]xCORE-AVX2 以上のプロセッサー・ターゲット・オプションを指定した場合、定義され、値は '1' になります。 注インテル® 64 アーキテクチャー・ベース・システムでのみ利用可能 |
__BASE_FILE__ (Linux*) |
ソースファイルの名前 |
__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' |
__extension__ (Linux*) |
|
__gnu_linux__ (Linux*) |
1 |
__GFX__ (Windows*、Linux*) |
このマクロを使用して、ターゲット向けにコンパイルされ、ターゲット上でのみ実行されるようにコードを保護できます。 デフォルトで定義されます。CPU とターゲットで実行するコードをビルドできますが、このマクロはターゲットのコンパイルにのみ定義されます。[Q]offload オプションの否定形を使用した場合の動作は未定義です。 |
__GNUC__ (Linux*) |
システムにインストールされている gcc* のメジャーバージョン番号 |
__GNUC_MINOR__ (Linux*) |
システムにインストールされている gcc* または g++* のマイナーバージョン番号 |
__GNUC_PATCHLEVEL__ (Linux*) |
システムにインストールされている gcc* または g++* のパッチレベルのバージョン番号 |
__GNUG__ (Linux*) |
システムにインストールされている g++* のメジャーバージョン番号 |
__GXX_ABI_VERSION (Linux*) |
102 (Linux*) |
__HONOR_STD (Linux*、OS X*) |
1 |
__i386 (Linux*、OS X*) __i386__ (Linux*、OS X*) i386 (Linux*、OS X*) |
1 注IA-32 アーキテクチャー・ベース・システムでのみ利用可能 |
>__INTEL_COMPILER (Linux*、OS X*) __ICC (Linux*、OS X*) __ICL (Windows*) |
インテル® C++ コンパイラーのバージョン 注このマクロは、/Qicl- または -no-icc などのコマンドライン・コンパイラー・オプションによる影響を受けます。 |
__INTEL_CLANG_COMPILER (OS X*) |
Clang 互換のインテル® C++ コンパイラーでコンパイルするコードを保護します。 |
__INTEL_COMPILER_BUILD_DATE (Windows*、Linux*、OS X*) |
YYYYMMDD |
__INTEL_CXX11_MODE__ (Windows*、Linux*) |
C++ プログラムで C++11 試験的サポートを有効にします。 [Q]std=c++11 を指定した場合、'1' として定義されます。 |
__INTEL_COMPILER_UPDATE |
インテル® C++ コンパイラーの現在のマイナー・アップデート番号を示す 0 以上の値を返します。 (Windows*、Linux*、OS X*) インテル® C++ コンパイラーの複数のアップデートがインストールされている場合、このマクロを使用してアップデートを区別できます。 例: インテル® C++ コンパイラー・バージョン XX.0.2 の場合、マクロは “2” に前処理されます。 |
__INTEL_MS_COMPAT_LEVEL (Windows*) |
デフォルトは '1' [Q]ms[n] の値 n と同じ |
__INTEL_OFFLOAD |
このマクロは、CPU とコプロセッサーで実行するコードをビルドする際にコンパイラーによって定義されます。 (Windows*、Linux*) このマクロと [Q]offload コンパイラー・オプションの否定形、あるいは Qmic (Windows*) または mmic (Linux*) を一緒に使用して、offload.h の omp_set_num_threads_target API の呼び出しのようにオフロードビルドでのみ実行されるホスト上のコードを保護します。 デフォルトで定義されます。CPU とコプロセッサーで実行するコードをビルドします。[Q]offload コンパイラー・オプションの否定形、あるいは Qmic (Windows*) または mmic (Linux*) を使用した場合の動作は未定義です。 |
__INTEL_RTTI__ (Linux*、OS X*) |
fno-rtti が指定されていない場合は '1' |
__INTEL_STRICT_ANSI__ (Linux*、OS X*) |
strict-ansi が指定されている場合は '1' |
__KNC__ |
このマクロは、__MIC__ に似ていますが、インテル® Xeon Phi™ コプロセッサー (インテル® MIC アーキテクチャー・ベース) で実行するコードをビルドする際にコンパイラーによって定義されます。 (Windows*、Linux*) |
__linux (Linux*) __linux__ (Linux*) linux (Linux*) |
1 |
__LITTLE_ENDIAN__ (OS X*) |
1 |
__LONG_DOUBLE_SIZE__ (Windows*、Linux*、OS X*) |
80 (Linux*、OS X*) 64、[Q]long-double オプションと一緒に指定した場合は 80 (Windows*) |
__LONG_DOUBLE_64__ (Linux*) |
このマクロを定義すると、long double 型は 64 ビットになります。 引数として 64 を指定し mlong-double オプションを使用する場合に定義します。 |
__LONG_MAX__ (Linux*) |
9223372036854775807L 注インテル® 64 アーキテクチャー・ベース・システムでのみ利用可能 |
__LP64__ (Linux*) |
1 注インテル® 64 アーキテクチャー・ベース・システムでのみ利用可能 |
__MACH__ (OS X*) |
1 |
__MIC__ |
このマクロは、コプロセッサーで実行するコードをビルドする際にコンパイラーによって定義されます。 (Windows*、Linux*) このマクロを使用して、コプロセッサー向けにコンパイルされ、コプロセッサー上でのみ実行されるようにコードを保護できます (インテル® MIC アーキテクチャー上でのみ実行可能な組込み関数や zmmintrins.h のような対応するヘッダーファイルなど)。 デフォルトで定義されます。CPU とコプロセッサーで実行するコードをビルドできますが、このマクロはコプロセッサーのコンパイルにのみ定義されます。 [Q]offload オプションの否定形を使用した場合の動作は未定義です。 コプロセッサー上で実行するコードをビルドするには、Qmic コンパイラー・オプション (Windows*) または mmic コンパイラー・オプション (Linux*) を使用します。 このマクロは、Qmic (Windows*) または mmic (Linux*) を使用する場合に定義されます。 |
__MMX__ (Linux*、OS X*) |
1 注Linux* では、インテル® 64 アーキテクチャー・ベース・システムでのみ利用できます。 |
__NO_INLINE__ (Linux*、OS X*) __NO_MATH_INLINES (Linux*、OS X*) __NO_STRING_INLINES (Linux*、OS X*) |
1 |
OFFLOAD_STATUS_INIT(statusvarname) |
コードをオフロードする前に、offload プラグマの status 節の変数を既知の値に初期化します。 (Windows*、Linux*) オフロード後、statusvarname を確認して、プラグマが実行されたかどうか、オフロードに成功したか失敗したか、および失敗した場合はその理由をチェックできます。 offload を参照してください。 |
__OPTIMIZE__ (Linux*、OS X*) |
1 |
__pentium4 (Linux*、OS X*) __pentium4__ (Linux*、OS X*) |
1 |
__PIC__ (Linux*、OS X*) __pic__ (Linux*) |
1 (OS X*) fPIC が指定されている場合は '1' (Linux*) |
__PTRDIFF_TYPE__ (Linux*、OS X*) |
IA-32 アーキテクチャーでは int、インテル® 64 アーキテクチャーでは long (Linux*) int / long (OS X*) |
__QMSPP_ (Windows*、OS X*) |
1 |
__REGISTER_PREFIX__ (Linux*、OS X*) |
|
__SIGNED_CHARS__ (Windows*、Linux*、OS X*) |
1 |
__SIZE_TYPE__ (Linux*、OS X*) |
IA-32 アーキテクチャーでは unsigned、インテル® 64 アーキテクチャーでは unsigned long (Linux*) unsigned long (OS X*) |
__SSE__ (Windows*、Linux*、OS X*) |
SSE 命令をサポートしているプロセッサーの場合は '1' (Linux* および OS X*) 定義され、値は '1'。/arch:IA32 の場合のみ未定義 (Windows*) |
__SSE2__ (Windows*、Linux*、OS X*) |
インテル® SSE2 命令をサポートしているプロセッサーの場合は '1' (Linux* および OS X*) デフォルトまたは arch:SSE2、QxSSE2、QaxSSE2 以上のプロセッサー・ターゲット・オプションを指定した場合、定義され、値は '1' になります。(Windows*) |
__SSE3__ (Windows*、Linux*、OS X*) |
インテル® SSE3 命令をサポートしているプロセッサーの場合は '1' (Linux* および OS X*) arch:SSE3、QxSSE3 以上のプロセッサー・ターゲット・オプションを指定した場合、定義され、値は '1' になります。 (Windows*) |
__SSE4_1__ (Windows*、Linux*) |
インテル® SSE4 命令をサポートしているプロセッサーの場合は '1' (Linux*) arch:SSE4.1、QxSSE4.1 以上のプロセッサー・ターゲット・オプションを指定した場合、定義され、値は '1' になります。(Windows*) |
__SSE4_2__ (Windows*、Linux*) |
SSSE4 命令をサポートしているプロセッサーの場合は '1' (Linux*) arch:SSE4.2、QxSSE4.2 以上のプロセッサー・ターゲット・オプションを指定した場合、定義され、値は '1' になります。(Windows*) |
__SSSE3__ (Windows*、Linux*、OS X*) |
インテル® SSSE3 命令をサポートしているプロセッサーの場合は '1' (Linux* および OS X*) arch:SSSE3、QxSSSE3 以上のプロセッサー・ターゲット・オプションを指定した場合、定義され、値は '1' になります。(Windows*) |
__STDC__ (OS X*) |
1 |
__STDC_HOSTED__ (OS X*) |
1 |
__USER_LABEL_PREFIX__ (Linux*、OS X*) |
|
__VERSION__ (Linux*、OS X*) |
インテル® C++ コンパイラーのバージョン文字列 |
__w64 (Windows*) |
定義され、値はなし |
__WCHAR_MAX__ (OS X*) |
2147483647 |
__WCHAR_T (Linux*) |
1 |
__WCHAR_TYPE__ (Linux*、OS X*) |
IA-32 アーキテクチャーでは long int、インテル® 64 アーキテクチャーでは int (Linux*) long int (OS X*) |
__WINT_TYPE__ (Linux*、OS X*) |
unsigned int |
__x86_64 (Linux*、OS X*) __x86_64__ (Linux*、OS X*) |
1 注インテル® 64 アーキテクチャー・ベース・システムでのみ利用可能 |
_BOOL (Linux*) |
1 |
_INC_STDIO (Windows*) |
定義され、値はなし |
_INTEGRAL_MAX_BITS (Windows*) |
64 |
_LP64 (Linux*) |
1 注インテル® 64 アーキテクチャー・ベース・システムでのみ利用可能 |
_M_AMD64 (Windows*) |
1 注インテル® 64 アーキテクチャー・ベース・システムでのみ利用可能 |
_M_IX86 (Windows*) |
700 |
_M_X64 (Windows*) |
1 注インテル® 64 アーキテクチャー・ベース・システムでのみ利用可能 |
_MSC_EXTENSIONS (Windows*) |
1 |
_MSC_FULL_VER (Windows*) |
使用している Visual C++* のバージョンと同じ 160040219 - Visual C++* 2010 170061030 - Visual C++* 2012 1800210051 - Visual C++* 2013 |
_MSC_VER (Windows*) |
1800 (Visual C++* 2013) 1700 (Visual C++* 2012) 1600 (Visual C++* 2010) |
_MT (Windows*、Linux*) |
マルチスレッド DLL またはライブラリーを使用した場合は 1 (/MD[d] または /MT[d] を指定した場合) (Windows*) 1 (Linux*) 注Linux* では、インテル® 64 アーキテクチャー・ベース・システムでのみ利用できます。 |
_OPENMP (Windows*、Linux*、OS X*) |
[Q]openmp オプションを指定した場合 200805 |
_PGO_INSTRUMENT (Windows*、Linux*) |
[Q]cov-gen または [Q]prof-gen を指定した場合 '1' |
_PLACEMENT_DELETE (Linux*) |
1 |
_SIZE_T_DEFINED (Windows*) |
定義され、値はなし |
_VA_LIST_DEFINED (Windows*) |
定義され、値はなし |
_WCHAR_T_DEFINED (Windows*) |
Zc:wchar_t を指定した場合、またはヘッダーファイルで "wctype_t" を定義した場合、定義されます。 |
_WCTYPE_T_DEFINED (Windows*) |
ヘッダーファイルで "wctype_t" を定義した場合、定義されます。 |
_WIN32 (Windows*) |
定義され、値は '1' |
_WIN64 (Windows*) |
定義され、値は '1' 注インテル® 64 アーキテクチャー・ベース・システムでのみ利用可能 |
unix (Linux*) __unix (Linux*) __unix__ (Linux*) |
1 |