##### http://autoconf-archive.cryp.to/ac_cxx_member_templates_outside_class.html # # SYNOPSIS # # AC_CXX_MEMBER_TEMPLATES_OUTSIDE_CLASS # # DESCRIPTION # # If the compiler supports member templates outside the class # declaration, define HAVE_MEMBER_TEMPLATES_OUTSIDE_CLASS. # # LAST MODIFICATION # # 2004-02-04 # # COPYLEFT # # Copyright (c) 2004 Todd Veldhuizen # Copyright (c) 2004 Luc Maisonobe # # Copying and distribution of this file, with or without # modification, are permitted in any medium without royalty provided # the copyright notice and this notice are preserved. AC_DEFUN([AC_CXX_MEMBER_TEMPLATES_OUTSIDE_CLASS], [AC_CACHE_CHECK(whether the compiler supports member templates outside the class declaration, ac_cv_cxx_member_templates_outside_class, [AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_COMPILE([ template class A { public : template A operator=(const A& z); }; template template A A::operator=(const A& z){ return A(); }],[ A x; A y; x = y; return 0;], ac_cv_cxx_member_templates_outside_class=yes, ac_cv_cxx_member_templates_outside_class=no) AC_LANG_RESTORE ]) if test "$ac_cv_cxx_member_templates_outside_class" = yes; then AC_DEFINE(HAVE_MEMBER_TEMPLATES_OUTSIDE_CLASS,, [define if the compiler supports member templates outside the class declaration]) fi ])