Back to the Main Page. | Download the M4 Source. |
AC_CXX_TEMPLATE_QUALIFIED_BASE_CLASS
1.1.1.1 (2001/07/26) C++_Support @ ac-archive-0.5.39
Luc Maisonobe
If the compiler supports template-qualified base class specifiers, define HAVE_TEMPLATE_QUALIFIED_BASE_CLASS.
AC_DEFUN([AC_CXX_TEMPLATE_QUALIFIED_BASE_CLASS], [AC_CACHE_CHECK(whether the compiler supports template-qualified base class specifiers, ac_cv_cxx_template_qualified_base_class, [AC_REQUIRE([AC_CXX_TYPENAME]) AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([ #ifndef HAVE_TYPENAME #define typename #endif class Base1 { public : int f () const { return 1; } }; class Base2 { public : int f () const { return 0; } }; template<class X> struct base_trait { typedef Base1 base; }; struct base_trait<float> { typedef Base2 base; }; template<class T> class Weird : public base_trait<T>::base { public : typedef typename base_trait<T>::base base; int g () const { return f (); } };],[ Weird<float> z; return z.g ();], ac_cv_cxx_template_qualified_base_class=yes, ac_cv_cxx_template_qualified_base_class=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_template_qualified_base_class" = yes; then AC_DEFINE(HAVE_TEMPLATE_QUALIFIED_BASE_CLASS,, [define if the compiler supports template-qualified base class specifiers]) fi ])