- cmath[meta header]
- macro[meta id-type]
- cpp11[meta cpp]
# 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_ERRNO[color ff0000]
- std::acosh[link acosh.md]
- math_errhandling[link math_errhandling.md]
- errno[link ../cerrno/errno.md]
math error : Numerical argument out of domain
- C++11
- Clang: 3.0 [mark verified]
- GCC: 4.3 [mark verified]
- ICC: ??
- Visual C++: ??