AC_CXX_MUTABLE , ,
2004年02月04日
Todd Veldhuizen Luc Maisonobe <luc@spaceroots.org>
AllPermissive
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. Users of this software should generally follow the
principles of the
MIT License includings its disclaimer.
cryp.to ac-archive's C++ Support (released)
If the compiler allows modifying class data members flagged with the mutable keyword even in const objects (for example in the body of a const member function), define HAVE_MUTABLE.
AC_DEFUN([AC_CXX_MUTABLE],
[AC_CACHE_CHECK(whether the compiler supports the mutable keyword,
ac_cv_cxx_mutable,
[AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([
class A { mutable int i;
public:
int f (int n) const { i = n; return i; }
};
],[A a; return a.f (1);],
ac_cv_cxx_mutable=yes, ac_cv_cxx_mutable=no)
AC_LANG_RESTORE
])
if test "$ac_cv_cxx_mutable" = yes; then
AC_DEFINE(HAVE_MUTABLE,,[define if the compiler supports the mutable keyword])
fi
])