1dnl Tries to determine if the isnan function exists in std namespace, 2dnl global namespace, or doesn't exist (in which case an appropriate 3dnl macro is generated). The result is put into ax_cxx_isnan. 4dnl 5AC_DEFUN([AX_CXX_ISNAN], [ 6AC_MSG_CHECKING([for isnan]) 7AC_LANG_PUSH(C++) 8ax_cxx_isnan= 9AC_COMPILE_IFELSE([AC_LANG_SOURCE([#include <cmath> 10 int main() { 11 std::isnan(1.0); 12 return 0; 13 }])], 14 [AC_MSG_RESULT(std::isnan) 15 ax_cxx_isnan="std::isnan(x)"]) 16if test "x$ax_cxx_isnan" = "x"; then 17 AC_COMPILE_IFELSE([AC_LANG_SOURCE([#include <cmath> 18 int main() { 19 ::isnan(1.0); 20 return 0; 21 }])], 22 [AC_MSG_RESULT(::isnan) 23 ax_cxx_isnan="::isnan(x)"], 24 [AC_MSG_RESULT(none) 25 ax_cxx_isnan="((x) != (x))"]) 26fi 27AC_LANG_POP(C++) 28]) 29