インテル® 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.homp_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:SSE2QxSSE2QaxSSE2 以上のプロセッサー・ターゲット・オプションを指定した場合、定義され、値は 1 になります。(Windows*)

__SSE3__

(Windows*、Linux*、OS X*)

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

arch:SSE3QxSSE3 以上のプロセッサー・ターゲット・オプションを指定した場合、定義され、値は 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.2QxSSE4.2 以上のプロセッサー・ターゲット・オプションを指定した場合、定義され、値は 1 になります。(Windows*)

__SSSE3__

(Windows*、Linux*、OS X*)

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

arch:SSSE3QxSSSE3 以上のプロセッサー・ターゲット・オプションを指定した場合、定義され、値は 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

関連情報


このヘルプトピックについてのフィードバックを送信