]> SALOME platform Git repositories - modules/kernel.git/blobdiff - salome_adm/unix/config_files/DEPRECATED/ac_cxx_partial_specialization.m4
Salome HOME
PR: merge from branch BR_auto_V310 tag mergefrom_OCC_development_for_3_2_0a2_10mar06
[modules/kernel.git] / salome_adm / unix / config_files / DEPRECATED / ac_cxx_partial_specialization.m4
diff --git a/salome_adm/unix/config_files/DEPRECATED/ac_cxx_partial_specialization.m4 b/salome_adm/unix/config_files/DEPRECATED/ac_cxx_partial_specialization.m4
new file mode 100644 (file)
index 0000000..634d3c6
--- /dev/null
@@ -0,0 +1,48 @@
+dnl  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+dnl  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
+dnl 
+dnl  This library is free software; you can redistribute it and/or 
+dnl  modify it under the terms of the GNU Lesser General Public 
+dnl  License as published by the Free Software Foundation; either 
+dnl  version 2.1 of the License. 
+dnl 
+dnl  This library is distributed in the hope that it will be useful, 
+dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of 
+dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
+dnl  Lesser General Public License for more details. 
+dnl 
+dnl  You should have received a copy of the GNU Lesser General Public 
+dnl  License along with this library; if not, write to the Free Software 
+dnl  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
+dnl 
+dnl  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
+dnl
+dnl
+dnl
+dnl @synopsis AC_CXX_PARTIAL_SPECIALIZATION
+dnl
+dnl If the compiler supports partial specialization,
+dnl define HAVE_PARTIAL_SPECIALIZATION.
+dnl
+dnl @version $Id$
+dnl @author Luc Maisonobe
+dnl
+
+AC_DEFUN([AC_CXX_PARTIAL_SPECIALIZATION],
+[AC_CACHE_CHECK(whether the compiler supports partial specialization,
+ac_cv_cxx_partial_specialization,
+[AC_LANG_SAVE
+ AC_LANG_CPLUSPLUS
+ AC_TRY_COMPILE([
+template<class T, int N> class A            { public : enum e { z = 0 }; };
+template<int N>          class A<double, N> { public : enum e { z = 1 }; };
+template<class T>        class A<T, 2>      { public : enum e { z = 2 }; };
+],[return (A<int,3>::z == 0) && (A<double,3>::z == 1) && (A<float,2>::z == 2);],
+ ac_cv_cxx_partial_specialization=yes, ac_cv_cxx_partial_specialization=no)
+ AC_LANG_RESTORE
+])
+if test "$ac_cv_cxx_partial_specialization" = yes; then
+  AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION,,
+            [define if the compiler supports partial specialization])
+fi
+])