AC_DEFUN([AC_CXX_HAVE_COMPLEX],
[AC_CACHE_CHECK(whether the compiler has complex<T>,
ac_cv_cxx_have_complex,
[AC_REQUIRE([AC_CXX_NAMESPACES])
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([#include <complex>
#ifdef HAVE_NAMESPACES
using namespace std;
#endif],[complex<float> a; complex<double> b; return 0;],
ac_cv_cxx_have_complex=yes, ac_cv_cxx_have_complex=no)
AC_LANG_RESTORE
])
if test "$ac_cv_cxx_have_complex" = yes; then
AC_DEFINE(HAVE_COMPLEX,,[define if the compiler has complex<T>])
fi
])