• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(UTC):
    が更新

    履歴 編集

    macro
    <cfenv>

    FE_OVERFLOW

    # define FE_OVERFLOW implementation-defined
    

    概要

    浮動小数点数の演算でオーバーフローが発生したことを表す浮動小数点例外の種類。

    このマクロは、浮動小数点例外の状態を表すビット値である。他の浮動小数点例外マクロとAND (&) や OR (|)を使用して、複数のマクロを組み合わせて使用できる。

    #include <iostream>
    #include <limits>
    #include <cfenv>
    
    int main()
    {
      // floatより大きな浮動小数点数からfloatへの変換
      float result = std::numeric_limits<double>::max();
      if (std::fetestexcept(FE_OVERFLOW)) {
        std::cout << "raised overflow" << std::endl;
      }
      else {
        std::cout << "no error" << std::endl;
      }
    }
    

    出力例

    raised overflow
    

    バージョン

    言語

    • C++11

    処理系

    • Clang: 3.0
    • GCC: 4.3.0
    • ICC: ??
    • Visual C++: 2013 , 2015
      • コンパイルオプション/fp:strictまたは#pragma fenv_access (on)が必要。さもなくば、正しく動作しないおそれがある。