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

fp-trap、Qfp-trap

メインルーチンに対して浮動小数点トラッピング・モードを設定します。

アーキテクチャーの制限

インテル® グラフィックス・テクノロジーをターゲットとするインテル® 64 アーキテクチャー、または IA-32 アーキテクチャーで実行するインテル® グラフィックス・テクノロジーをターゲットとする場合は利用できません。

構文

Linux* および macOS*:

-fp-trap=mode[,mode,...]

Windows*:

/Qfp-trap:mode[,mode,...]

引数

mode

浮動小数点トラッピング・モード。複数のモード値を指定した場合は、リストは左から右の順に処理されます。設定可能な値は以下のとおりです。

[no]divzero

ゼロ除算の IEEE トラップを有効または無効にします。

[no]inexact

正確でない結果の IEEE トラップを有効または無効にします。

[no]invalid

無効な演算の IEEE トラップを有効または無効にします。

[no]overflow

オーバーフローの IEEE トラップを有効または無効にします。

[no]underflow

アンダーフローの IEEE トラップを有効または無効にします。

[no]denormal

デノーマルの IEE トラップを有効または無効にします。

all

上記すべてのトラップを有効にします。

none

上記すべてのトラップを無効にします。

common

ゼロ除算、無効な演算、オーバーフローなど最も一般に使用される IEEE トラップを設定します。

デフォルト

-fp-trap=none
または /Qfp-trap:none

プログラムの起動時にトラップは有効にされません。

説明

このオプションは、メインルーチンの浮動小数点トラッピング・モードを設定します。浮動小数点例外のハンドラーは設定しません。

mode 値の [no] 形式は、mode 値の allcommon の意味を変更する場合にのみ使用され、これらの値のうちの 1 つとともに使用できます。[no] 形式自体は、明示的に特定のトラップを無効にするわけではありません。

mode 値の inexact は注意して使用してください。浮動小数点値を正確に表現できないときはいつでもトラップが有効になり、予測できない結果を引き起こすことがあります。

mode 値の underflow が指定された場合、コンパイラーはインテル® ストリーミング SIMD 拡張命令 (インテル® SSE) の浮動小数点ユニットの FTZ (Flush-to-Zero) ビット状態を無視します。

DAZ (Denormals Are Zero) ビットがインテル® SSE 浮動小数点ユニットのコントロール・ワードで設定されると、正規化されていないオペランド例外は生成されません。

すべてのルーチンに対して浮動小数点トラッピング・モードを設定するには、[Q]fp-trap-all オプションを指定します。

[Q]ftz オプションの否定形を使用して FTZ と DAZ ハードウェア・フラグを設定/リセットできます。

IDE オプション

Visual Studio*: [Code Generation (コード生成)] > [Unmask Floating Point Exceptions (浮動小数点例外のマスク解除)]

[Configuration Properties (構成プロパティー)] > [C/C++] > [Unmask Floating Point Exceptions (浮動小数点例外のマスク解除)]

Eclipse*: [Floating Point (浮動小数点)] > [Initial Exception Mask (初期例外マスク)]

Xcode*: [Floating Point (浮動小数点)] > [Set Initial Exception Mask (初期例外マスクの設定)]

代替オプション

なし

関連情報