Salome HOME
sources v1.2
[modules/kernel.git] / salome_adm / unix / config_files / ac_cxx_partial_specialization.m4
1 dnl  Copyright (C) 2003  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
2 dnl  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS 
3 dnl 
4 dnl  This library is free software; you can redistribute it and/or 
5 dnl  modify it under the terms of the GNU Lesser General Public 
6 dnl  License as published by the Free Software Foundation; either 
7 dnl  version 2.1 of the License. 
8 dnl 
9 dnl  This library is distributed in the hope that it will be useful, 
10 dnl  but WITHOUT ANY WARRANTY; without even the implied warranty of 
11 dnl  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU 
12 dnl  Lesser General Public License for more details. 
13 dnl 
14 dnl  You should have received a copy of the GNU Lesser General Public 
15 dnl  License along with this library; if not, write to the Free Software 
16 dnl  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA 
17 dnl 
18 dnl  See http://www.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org 
19 dnl
20 dnl
21 dnl
22 dnl @synopsis AC_CXX_PARTIAL_SPECIALIZATION
23 dnl
24 dnl If the compiler supports partial specialization,
25 dnl define HAVE_PARTIAL_SPECIALIZATION.
26 dnl
27 dnl @version $Id$
28 dnl @author Luc Maisonobe
29 dnl
30
31 AC_DEFUN(AC_CXX_PARTIAL_SPECIALIZATION,
32 [AC_CACHE_CHECK(whether the compiler supports partial specialization,
33 ac_cv_cxx_partial_specialization,
34 [AC_LANG_SAVE
35  AC_LANG_CPLUSPLUS
36  AC_TRY_COMPILE([
37 template<class T, int N> class A            { public : enum e { z = 0 }; };
38 template<int N>          class A<double, N> { public : enum e { z = 1 }; };
39 template<class T>        class A<T, 2>      { public : enum e { z = 2 }; };
40 ],[return (A<int,3>::z == 0) && (A<double,3>::z == 1) && (A<float,2>::z == 2);],
41  ac_cv_cxx_partial_specialization=yes, ac_cv_cxx_partial_specialization=no)
42  AC_LANG_RESTORE
43 ])
44 if test "$ac_cv_cxx_partial_specialization" = yes; then
45   AC_DEFINE(HAVE_PARTIAL_SPECIALIZATION,,
46             [define if the compiler supports partial specialization])
47 fi
48 ])