MATH_ERRNO, MATH_ERREXCEPT, math_errhandling
From cppreference.com
                    
                                        
                    
                    
                                                            
                    |   Defined in header <cmath>
   | 
||
|   #define MATH_ERRNO        1  | 
(since C++11) | |
|   #define MATH_ERREXCEPT    2  | 
(since C++11) | |
|   #define math_errhandling  /*implementation defined*/  | 
(since C++11) | |
The macro constant math_errhandling expands to an expression of type int that is either equal to MATH_ERRNO, or equal to MATH_ERREXCEPT, or equal to their bitwise OR (MATH_ERRNO | MATH_ERREXCEPT).
The value of math_errhandling indicates the type of error handling that is performed by the floating-point operators and functions:
| Constant | Explanation | 
  MATH_ERREXCEPT
 | 
indicates that floating-point exceptions are used: at least FE_DIVBYZERO, FE_INVALID, and FE_OVERFLOW are defined in <cfenv>. | 
  MATH_ERRNO
 | 
indicates that floating-point operations use the variable errno to report errors. | 
The following floating-point error conditions are recognized:
| This section is incomplete Reason: needs to be a table  | 
-  Domain error (input argument is outside the range in which the operation is mathematically defined, e.g. std::sqrt(-1), std::log(-1), or std::acos(2)). If 
MATH_ERRNObit is set, EDOM is assigned to errno. If MATH_ERREXCEPT bit is set, FE_INVALID is raised. - Range error (the mathematical result cannot be represented as the object of specified type, e.g. std::atanh(-1), std::log(0.0), or std::lgamma(0.0)). If MATH_ERRNO bit is set, ERANGE is assigned to errno. If MATH_ERREXCEPT bit is set, FE_DIVBYZERO or FE_OVERFLOW is raised.
 - Overflow (the mathematical result is finite, but too big to be represented without extreme roundoff error, e.g. functions such as std::exp with sufficiently large arguments). If MATH_ERRNO bit is set, ERANGE is assigned to errno. If MATH_ERREXCEPT bit is set, FE_OVERFLOW is raised.
 - Underflow (the mathematical result is non-zero, but too small to be represented without extreme roundoff error, e.g. the result is subnormal, as in std::sin(subnormal) or for many other functions with subnormal arguments). If MATH_ERRNO bit is set, ERANGE may be assigned to errno. If MATH_ERREXCEPT bit is set, FE_UNDERFLOW may be raised.
 
[edit] Example
| This section is incomplete Reason: no example  | 
[edit] See also
|    floating-point exceptions   (macro constant)  | |
|   macro which expands to POSIX-compatible thread-local error number variable (macro variable)  | |