インテル® C++ コンパイラー 14.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*) このマクロを使用して、ターゲット向けにコンパイルされ、ターゲット上でのみ実行されるようにコードを保護できます。 デフォルトで定義されます。CPU とターゲットで実行するコードをビルドできますが、このマクロはターゲットのコンパイルにのみ定義されます。Qoffload オプションの否定形を使用した場合の動作は未定義です。 |
__GNUC__ |
(Linux*、OS X*) システムにインストールされている gcc* のメジャーバージョン番号 |
__GNUC_MINOR__ |
(Linux*、OS X*) システムにインストールされている gcc または g++* のマイナーバージョン番号 |
__GNUC_PATCHLEVEL__ |
(Linux*、OS X*) システムにインストールされている gcc または g++ のパッチレベルのバージョン番号 |
__GNUG__ |
(Linux*、OS X*) システムにインストールされている g++* のメジャーバージョン番号 |
__GXX_ABI_VERSION |
(Linux*、OS X*) 102 (Linux*) ABI バージョン (OS X*) |
__HONOR_STD |
(Linux*、OS X*) 1 |
__i386 |
(Linux*、OS X*) 1 IA-32 アーキテクチャー・ベース・システムでのみ利用可能 |
__i386__ |
(Linux*、OS X*) 1 IA-32 アーキテクチャー・ベース・システムでのみ利用可能 |
i386 |
(Linux*、OS X*) 1 IA-32 アーキテクチャー・ベース・システムでのみ利用可能 |
__ICC |
(Linux*、OS X*) インテル® コンパイラーのバージョン |
__ICL |
(Windows*) インテル® コンパイラーのバージョン |
__INTEL_COMPILER |
(Linux*、OS X*) インテル® コンパイラーのバージョン |
__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 |
(Windows*、Linux*、OS X*) インテル® コンパイラーの現在のアップデート番号を示す 0 以上の値を返します。 インテル® コンパイラーの複数のアップデートがインストールされている場合、このマクロを使用してアップデートを区別できます。 |
__INTEL_MS_COMPAT_LEVEL |
(Windows*) デフォルトは 1 Qms[n] の値 n と同じ |
__INTEL_OFFLOAD |
(Windows*、Linux*) このマクロは、CPU とコプロセッサーで実行するコードをビルドする際にコンパイラーによって定義されます。 このマクロと [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__ |
(Windows*、Linux*) このマクロは、__MIC__ に似ていますが、インテル® Xeon Phi™ コプロセッサー (インテル® MIC アーキテクチャーのバリエーション) で実行するコードをビルドする際にコンパイラーによって定義されます。 |
__linux |
(Linux*) 1 |
__linux__ |
(Linux*) 1 |
__LITTLE_ENDIAN__ |
(OS X*) 1 |
__LONG_DOUBLE_SIZE__ |
(Windows*、Linux*、OS X*) 80 (Linux*、OS X*) 64 (Windows*) 80 (/Qlong-double の場合、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*) 1 |
__NO_MATH_INLINES |
(Linux*、OS X*) 1 |
__NO_STRING_INLINES |
(Linux*、OS X*) 1 |
OFFLOAD_STATUS_INIT(statusvarname ) |
(Windows*、Linux*) コードをオフロードする前に、offload プラグマの status 節の変数を既知の値に初期化します。 オフロード後、statusvarname を確認して、プラグマが実行されたかどうか、オフロードに成功したか失敗したか、および失敗した場合はその理由をチェックできます。 offload を参照してください。 |
__OPTIMIZE__ |
(Linux*、OS X*) 1 |
__pentium4 |
(Linux*、OS X*) 1 |
__pentium4__ |
(Linux*、OS X*) 1 |
__PIC__ |
(Linux*、OS X*) 1 (OS X*) fPIC が指定されている場合は 1 (Linux*) |
__pic__ |
(Linux*) fPIC が指定されている場合は 1 |
__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 |
__unix |
(Linux*) 1 |
__unix__ |
(Linux*) 1 |
__USER_LABEL_PREFIX__ |
(Linux*、OS X*)
|
__VERSION__ |
(Linux*、OS X*) インテルのバージョン文字列 |
__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*) 1 インテル® 64 アーキテクチャー・ベース・システムでのみ利用可能 |
__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++* のバージョンと同じ 150021022 - Visual C++* 2008 160040219 - Visual C++* 2010 |
_MSC_VER |
(Windows*) 1500 (Visual C++* 2008 を使用した場合) または 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 を指定した場合、またはヘッダーファイルで "wchar_t" を定義した場合、定義されます。 |
_WCTYPE_T_DEFINED |
(Windows*) ヘッダーファイルで "wctype_t" を定義した場合、定義されます。 |
_WIN32 |
(Windows*) 定義され、値は 1 |
_WIN64 |
(Windows*) 定義され、値は 1 インテル® 64 アーキテクチャー・ベース・システムでのみ利用可能 |
linux |
(Linux*) 1 |
unix |
(Linux*) 1 |