<cfenv>
ヘッダーは、浮動小数点環境を制御するための機能を提供します。主な機能は以下の通りです。
- 浮動小数点例外の処理
FE_ALL_EXCEPT
、FE_DIVBYZERO
、FE_INEXACT
、FE_INVALID
、FE_OVERFLOW
、FE_UNDERFLOW
などの定数が定義されており、浮動小数点計算における例外の種類を表します。std::feclearexcept()
、std::fegetexceptflag()
、std::feraiseexcept()
、std::fesetexceptflag()
、std::fetestexcept()
などの関数で、例外フラグの取得、設定、テストができます。- 浮動小数点丸め方式の制御
FE_DOWNWARD
、FE_TONEAREST
、FE_TOWARDZERO
、FE_UPWARD
などの定数が、丸め方式を表します。std::fegetround()
とstd::fesetround()
で、現在の丸め方式を取得、設定できます。- 浮動小数点環境のオブジェクトの操作
std::fenv_t()
型が浮動小数点環境を表すオブジェクトの型です。std::fegetenv()
、std::feholdexcept()
、std::fesetenv()
、std::feupdateenv()
で、浮動小数点環境オブジェクトを操作できます。
このヘッダーを使うことで、プログラム中で浮動小数点計算の振る舞いを細かく制御できるようになります。ただし、C++標準ではこれらの機能のサポートは実装依存となっています。