aboutsummaryrefslogtreecommitdiff
path: root/configure.ac
diff options
context:
space:
mode:
authorAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2007-11-17 12:33:54 +0000
committerAvatar Ciaran McCreesh <ciaran.mccreesh@googlemail.com> 2007-11-17 12:33:54 +0000
commit763dc12ae16b75aed6a97b16514f6583feef6663 (patch)
treeffebfd6e8acf7c8ebaa280dde1ca1ebdde6a7141 /configure.ac
parent34fe5458d12f8c1d7893a89e59a4d2e5f8095980 (diff)
downloadpaludis-763dc12ae16b75aed6a97b16514f6583feef6663.tar.gz
paludis-763dc12ae16b75aed6a97b16514f6583feef6663.tar.xz
Be kinder to stupid compilers: don't rely upon tr1::shared_ptr<> being callable. Don't explicitly instantiate fully specialised templates if the compielr doesn't allow it. Include -impl headers in more places to work around compilers thinking they can ignore explicit instantiations.
Diffstat (limited to 'configure.ac')
-rw-r--r--configure.ac14
1 files changed, 14 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac
index 598ef6e62..04b25440c 100644
--- a/configure.ac
+++ b/configure.ac
@@ -185,6 +185,20 @@ template <> template <typename T_> struct S<T<T_> > { };
])
dnl }}}
+dnl {{{ check whether we do explicit instantiation of fully specialised templates
+AC_MSG_CHECKING([whether we should explicitly instantiate fully specialised templates])
+AC_COMPILE_IFELSE([
+template <typename T_> struct S;
+template <> struct S<int>;
+template class S<int>;
+],
+ [AC_MSG_RESULT([yes])],
+ [AC_MSG_RESULT([no])
+ PALUDIS_CXXFLAGS="${PALUDIS_CXXFLAGS} -DPALUDIS_NO_EXPLICIT_FULLY_SPECIALISED=1"
+ PALUDIS_PC_CFLAGS="${PALUDIS_PC_CFLAGS} -DPALUDIS_NO_EXPLICIT_FULLY_SPECIALISED=1"
+ ])
+dnl }}}
+
dnl {{{ check for static_assert
AC_MSG_CHECKING([for compiler support for static_assert])
AC_COMPILE_IFELSE([