/* Generally, the C standard guarantees that at program startup, "trapping or stopping(ifsupported)isdisabledonall[floating-point]exceptions" (F.7.3/1oftheAugust3,1998draftofC99),andthatduringprogram execution,"aprogrammercansafelyassumedefaultmodes(orbeunawareof them)"(7.6/2,footnote161oftheAugust3,1998draftofC99).Reportedly, onWindowsthereareprinterdriversthatswitchonexceptions.Toavoid problems,theSAL_MATH_FPEXCEPTIONS_OFFmacrocanbeusedtoexplicitly switchoffexceptions(onWindows).
*/ #ifdefined(_WIN32) #define SAL_MATH_FPEXCEPTIONS_OFF() _control87( _MCW_EM, _MCW_EM ) #else/* WNT */ #define SAL_MATH_FPEXCEPTIONS_OFF() #endif/* WNT */
/* SAL_MATH_FINITE(d): test double d on INFINITY, NaN et al. */ #if !defined __sun && !defined ANDROID \
&& defined(__cplusplus) \
&& ( defined(__GXX_EXPERIMENTAL_CXX0X__) \
|| __cplusplus >= 201103L \
|| defined(IOS) ) #define SAL_MATH_FINITE(d) std::isfinite(d) #elifdefined __APPLE__ && !(defined __i386__ || defined __x86_64__) #define SAL_MATH_FINITE(d) isfinite(d) #elifdefined(_WIN32) #define SAL_MATH_FINITE(d) _finite(d) #elifdefined(ANDROID) || defined LINUX || defined UNX #define SAL_MATH_FINITE(d) finite(d) #else/* WNT, LINUX, UNX */ #error"SAL_MATH_FINITE not defined" #endif/* WNT, LINUX, UNX */
/* This needs to be fixed for non--IEEE-754 platforms: */ #if1/* IEEE 754 supported */ #ifdefined OSL_BIGENDIAN
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.