feupdateenv

現在発生している浮動小数点例外を保存し、指定した浮動小数点環境状態を復元し、保存されている浮動小数点例外を発生させます。

構文

int feupdateenv(
   const fenv_t* penv
);

パラメーター

penv
へのfenv_t呼び出しによって設定された浮動小数点環境を含むオブジェクトへのfegetenvポインター。feholdexcept マクロを使用して、既定のスタートアップ浮動小数点環境を FE_DFL_ENV 指定することもできます。

戻り値

すべてのアクションが正常に完了した場合は、0 を返します。 それ以外の場合は、0 以外の値を返します。

解説

feupdateenv 関数は複数のアクションを実行します。 まず、現在発生している浮動小数点例外状態フラグを自動ストレージに格納します。 次に、penv が示す fenv_t オブジェクトに格納されている値から現在の浮動小数点環境を設定します。 有効なfenv_tオブジェクトをFE_DFL_ENV指していないか、または指していない場合penv、後続の動作は未定義です。 最後に、feupdateenv は、ローカルに格納されている浮動小数点例外を発生させます。

この関数を使用するには、呼び出しの前に #pragma fenv_access(on) ディレクティブを使用してアクセスを妨げる可能性のある浮動小数点の最適化をオフにする必要があります。 詳細については、fenv_accessを参照してください。

必要条件

機能 C ヘッダー C++ ヘッダー
feupdateenv <fenv.h> <cfenv>

互換性の詳細については、「 Compatibility」を参照してください。

関連項目

fegetenv
feclearexcept
feholdexcept
fesetexceptflag