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

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

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

マクロ 説明

__AVX__

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

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

__AVX2__

(Linux*)

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

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

__AVX512BW__

(Windows*、Linux*)

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

__AVX512CD__

(Windows*、Linux*)

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

__AVX512DQ__

(Windows*、Linux*)

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

__AVX512ER__

(Windows*、Linux*)

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

__AVX512F__

(Windows*、Linux*)

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

__AVX512PF__

(Windows*、Linux*)

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

__AVX512VL__

(Windows*、Linux*)

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

__BASE_FILE__

(Linux*)

ソースファイルの名前。

__COUNTER__

(Windows*)

'0'。

__cplusplus

(Linux*)

'1' (インテル® oneAPI DPC++/C++ コンパイラーの場合)。

__ELF__

(Linux*)

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

__EXCEPTIONS

(Linux*)

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

__gnu_linux__

(Linux*)

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

__GNUC__

(Linux*)

システムにインストールされている gcc のメジャーバージョン番号。

__GNUC_MINOR__

(Linux*)

システムにインストールされている gcc または g++ のマイナーバージョン番号。

__GNUC_PATCHLEVEL__

(Linux*)

システムにインストールされている gcc または g++ のパッチレベルのバージョン番号。

__GNUG__

(Linux*)

システムにインストールされている g++ のメジャーバージョン番号。

__i386__

__i386

i386

(Linux*)

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

_INTEGRAL_MAX_BITS

(Windows*)

64。

__INTEL_LLVM_COMPILER

(Windows*、Linux*)

VVVVMMUU 形式のコンパイラーのバージョン。ここで、VVVV はメジャー・リリース・バージョン、MM はマイナー・リリース・バージョン、UU はアップデート番号です。例えば、ベースリリースである 2021.1 は値 20210100 で表されます。

このシンボルは CMake でも認識されます。

インテル® oneAPI DPC++/C++ コンパイラーを一意に別するには、__INTEL_LLVM_COMPILER と SYCL_LANGUAGE_VERSION が両方とも存在することを確認する必要があります。SYCL_LANGUAGE_VERSION は SYCL* 仕様の一部です。

__INTEL_MS_COMPAT_LEVEL

(Windows*)

'1'。

__LIBSYCL_MAJOR_VERSION

DPC++ ランタイム・ライブラリーのメジャーバージョンを設定します。

__LIBSYCL_MINOR_VERSION

DPC++ ランタイム・ライブラリーのマイナーバージョンを設定します。

__LIBSYCL_PATCH_VERSION

DPC++ ランタイム・ライブラリーのパッチバージョンを設定します。

__linux__

__linux

linux

(Linux*)

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

__LONG_DOUBLE_SIZE__

(Windows*、Linux*)

Linux* では 80。

Windows* では 64。/Qlong-double が指定された場合は 80。

__LONG_MAX__

(Linux*)

9223372036854775807L。

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

__LP64__ (Linux*)

__LP64 (Linux*)

'1'。

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

_M_IX86

(Windows*)

700。

_M_X64

(Windows*)

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

__MMX__

(Linux*)

'1'。

Linux* では、インテル® 64 アーキテクチャー・ベースのシステムでのみ利用できます。

_MSC_EXTENSIONS

(Windows*)

このマクロは、Microsoft* 拡張が有効な場合に定義されます。

_MSC_FULL_VER

(Windows*)

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

_MSC_VER

(Windows*)

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

_MT

(Windows*)

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

__NO_MATH_INLINES

__NO_STRING_INLINES

(Linux*)

'1'。

_OPENMP

(Windows*、Linux*)

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

__OPTIMIZE__

(Linux*)

'1'。

__pentium4

__pentium4__

(Linux*)

'1'。

__PIC__

__pic__

(Linux*)

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

__PTRDIFF_TYPE__

(Linux*)

Linux* では、IA-32 アーキテクチャーでは int (C++ のみ)、インテル® 64 アーキテクチャーでは long。

__QMSPP_

(Windows*)

'1'。

__REGISTER_PREFIX__

(Linux*)

 

RESTRICT_WRITE_ACCESS_TO_CONSTANT_PTR

仕様は、データ並列 C++ (DPC++) 実装が空間推定に対応していることを前提としています。しかし、推定はユーザー・フレンドリーな診断を提供するのが難しい中間で実行されます。constant_ptr から得られる生ポインターに書き込む場合、利用可能な診断はありません。診断を有効にするには、RESTRICT_WRITE_ACCESS_TO_CONSTANT_PTR マクロを有効にします。これにより、constant_ptr はポインター型として定数ポインターを使用できるようになります。このマクロを有効にすると、constant_ptr から生ポインターへの変換は定数ポインターを返し、定数ポインターへの書き込みはフロントエンドで診断されます。constant_ptr からポインター型への変換は追加の修飾子なしでポインターを返すため、これは SYCL* 仕様に従っていません。このマクロは、デフォルトで無効になります。

__SIGNED_CHARS__

(Windows*、Linux*)

'1'。

_SIZE_T_DEFINED

(Windows*)

定義され、値はなし。

__SIZE_TYPE__

(Linux*)

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

__SSE__

(Windows*、Linux*)

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

Windows* では '1'。

__SSE2__

(Windows*、Linux*)

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

__SSE3__

(Windows*、Linux*)

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

__SSE4_1__

(Windows*、Linux*)

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

__SSE4_2__

(Windows*、Linux*)

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

__SSSE3__

(Windows*、Linux*)

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

__SYCL_COMPILER_VERSION (Windows*、Linux*)

SYCL* ライブラリーのビルド日付を YYYYMMDD 形式で示します。

これは、ソースコードに SYCL* ライブラリーのヘッダーをインクルードしている場合にのみ使用できます。

SYCL_DISABLE_CPP_VERSION_CHECK_WARNING

(Windows*、Linux*)

ユーザーがサポートされていない C++ バージョンを使用してコンパイルしようとした場合に表示される警告を無効にします。

SYCL_LANGUAGE_VERSION

SYCL* コードをコンパイルする場合にのみ定義されます。

SYCL_USE_NATIVE_FP_ATOMICS

SYCL_USE_NATIVE_FP_ATOMICS マクロを有効にして、ターゲットデバイスでネイティブ浮動小数点アトミックを生成する関数を有効にします。ターゲットデバイスが浮動小数点アトミックをサポートしていない場合は、エミュレートされたアトミックが使用されます。このマクロは、デフォルトで無効になります。

unix

__unix

__unix__

(Linux*)

'1'。

__USER_LABEL_PREFIX__

(Linux*)

 

_VA_LIST_DEFINED

(Windows*)

定義され、値はなし。

__VERSION__

(Linux*)

コンパイラー・バージョン文字列。

__w64

(Windows*)

定義され、値はなし。

__WCHAR_T

(Linux*)

'1'。

_WCHAR_T_DEFINED

(Windows*)

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

__WCHAR_TYPE__

(Linux*)

Linux* では、IA-32 アーキテクチャーでは long int (C++ のみ)、インテル® 64 アーキテクチャーでは int。

_WCTYPE_T_DEFINED

(Windows*)

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

_WIN32

(Windows*)

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

_WIN64

(Windows*)

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

__WINT_TYPE__

(Linux*)

符号なし int。

__x86_64

__x86_64__

(Linux*)

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

関連情報