dnl -*- Mode: m4 -*-
dnl
dnl SUMMARY: $Id: cxx_have_namespace.m4,v 1.3 2000/06/13 22:25:33 prudhomm Exp $
dnl
dnl AUTHOR: Christophe Prud'homme
dnl ORG: Christophe Prud'homme
dnl E-MAIL: Christophe.Prudhomme@ann.jussieu.fr
dnl
dnl ORIG-DATE: 26-Dec-98 at 17:50:54
dnl LAST-MOD: 13-Jun-00 at 17:51:54 by Christophe Prud'homme
dnl
dnl DESCRIPTION:
dnl This program is free software; you can redistribute it and/or modify
dnl it under the terms of the GNU General Public License as published by
dnl the Free Software Foundation; either version 2 of the License, or
dnl (at your option) any later version.
dnl
dnl This program 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
dnl GNU General Public License for more details.
dnl
dnl You should have received a copy of the GNU General Public License
dnl along with this program; if not, write to the Free Software
dnl Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
dnl
dnl If the C++ compiler support namespace, define `HAVE_NAMESPACE'.
dnl DESCRIP-END.
dnl
AC_DEFUN(CXX_HAVE_NAMESPACE,
[
AC_REQUIRE([AC_PROG_CXX])
AC_MSG_CHECKING(whether the C++ compiler (${CXX}) supports namespace header)
AC_CACHE_VAL(ddec_cv_have_namespace,
[
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([
namespace computers {
class keyboard {
public:
int getkey() const;
};
int keyboard::getkey() const
{
return 0;
}
}
namespace music {
class keyboard {
public:
void playNote(int note);
};
}
namespace music {
void keyboard::playNote(int note)
{
}
namespace foo {
template<class T> void Xeg(T) { }
}
}
using namespace computers;
],
[
keyboard x;
int z = x.getkey();
music::keyboard y;
y.playNote(z);
using namespace music::foo;
Xeg(z);
return 0;
],
ddec_cv_have_namespace=yes,
ddec_cv_have_namespace=no)
AC_LANG_RESTORE
])
AC_MSG_RESULT($ddec_cv_have_namespace)
if test "$ddec_cv_have_namespace" = yes; then
AC_DEFINE(HAVE_NAMESPACE)
fi
])dnl
dnl
AC_DEFUN(CXX_HAVE_NAMESPACE_STD,
[
AC_REQUIRE([CXX_HAVE_NAMESPACE])
AC_MSG_CHECKING(whether the C++ compiler (${CXX}) supports the namespace std::)
AC_CACHE_VAL(ddec_cv_have_namespace_std,
[
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([
#include <cstdlib>
using namespace std;
],
[
std::exit(0);
return 0;
],
ddec_cv_have_namespace_std=yes,
ddec_cv_have_namespace_std=no)
AC_LANG_RESTORE
])
AC_MSG_RESULT($ddec_cv_have_namespace_std)
if test "$ddec_cv_have_namespace_std" = yes; then
AC_DEFINE(HAVE_NAMESPACE_STD)
fi
])
syntax highlighted by Code2HTML, v. 0.9.1