# 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++: ??