Back to the Main Page. | Download the M4 Source. |
AC_CXX_TEMPLATE_QUALIFIED_RETURN_TYPE
1.1.1.1 (2001/07/26) C++_Support @ ac-archive-0.5.39
Luc Maisonobe
If the compiler supports template-qualified return types, define HAVE_TEMPLATE_QUALIFIED_RETURN_TYPE.
AC_DEFUN([AC_CXX_TEMPLATE_QUALIFIED_RETURN_TYPE], [AC_CACHE_CHECK(whether the compiler supports template-qualified return types, ac_cv_cxx_template_qualified_return_type, [AC_REQUIRE([AC_CXX_TYPENAME]) AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([ #ifndef HAVE_TYPENAME #define typename #endif template<class X, class Y> struct promote_trait { typedef X T; }; template<> struct promote_trait<int, float> { typedef float T; }; template<class T> class A { public : A () {} }; template<class X, class Y> A<typename promote_trait<X,Y>::T> operator+ (const A<X>&, const A<Y>&) { return A<typename promote_trait<X,Y>::T>(); } ],[A<int> x; A<float> y; A<float> z = x + y; return 0;], ac_cv_cxx_template_qualified_return_type=yes, ac_cv_cxx_template_qualified_return_type=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_template_qualified_return_type" = yes; then AC_DEFINE(HAVE_TEMPLATE_QUALIFIED_RETURN_TYPE,, [define if the compiler supports template-qualified return types]) fi ])