最終更新日時: 2025年07月13日 13時07分37秒 (JST)
Koichi Murase が更新

履歴 編集

macro
<cmath>

# MATH_ERRNO(C++11)

    #define MATH_ERRNO 1

## 概要

`MATH_ERRNO`は、`<cmath>`内で`errno`にエラーが設定されたかを表す整数定数マクロである。

この定数と`math_errhandling`でビットANDをとった結果がゼロでないか比較することにより、`errno`にエラーが設定されたか否かを判定できる。

## 例

    #include <iostream>
    #include <cmath>
    #include <cerrno>
    #include <cstring>

    int main()
    {
      errno = 0;
      std::acosh(0.1);

      if (math_errhandling & MATH_ERRNO && errno != 0) {
        std::cout << "math error : " << std::strerror(errno) << std::endl;
      }
      else {
        std::cout << "no error" << std::endl;
      }
    }

### 出力例

    math error : Numerical argument out of domain

## バージョン

### 言語

- C++11

### 処理系

- Clang: 3.0 ✅
- GCC: 4.3 ✅
- ICC: ??
- Visual C++: ??