Macro: ac_cxx_have_freeze_sstream

Back to the Main Page. | # ac_cxx_have_freeze_sstream | Download the M4 Source.

Synopsis

  `AC_CXX_HAVE_FREEZE_SSTREAM`

Version

  $2.0 09/04/2002$ C++_Support @ ac-archive-0.5.39

Author

  Alain BARBET <alian@cpan.org>

Description

  Check if the compiler has (need) freeze method call in stringstream/ strstream. Seems that Win32 and STLPort have it, libstdc++ not ...

  Eg:

  `#include <sstream>`
  `#ifdef HAVE_NAMESPACES`
  `using namespace std;`
  `#endif`
  `#ifdef HAVE_SSTREAM`
  `stringstream message;`
  `#else`
  `strstream message;`
  `#endif`
  `message << "Hello";`
  `#ifdef HAVE_FREEZE_SSTREAM`
  `message.freeze(0);`
  `#endif`

M4 Source Code

      AC_DEFUN([AC_CXX_HAVE_FREEZE_SSTREAM],
      [AC_CACHE_CHECK(whether the compiler has freeze in stringstream,
      ac_cv_cxx_have_freeze_sstream,
      [AC_REQUIRE([AC_CXX_NAMESPACES])
        AC_REQUIRE([AC_CXX_HAVE_SSTREAM])
        AC_LANG_SAVE
        AC_LANG_CPLUSPLUS
        AC_TRY_COMPILE([#include <sstream>
      #ifdef HAVE_NAMESPACES
      using namespace std;
      #endif],
      [#ifdef HAVE_SSTREAM
      stringstream message;
      #else
      strstream message;
      #endif
      message << "Hello"; message.freeze(0); return 0;],
        ac_cv_cxx_have_freeze_sstream=yes, ac_cv_cxx_have_freeze_sstream=no)
        AC_LANG_RESTORE
      ])
      if test "$ac_cv_cxx_have_freeze_sstream" = yes; then
         AC_DEFINE(HAVE_FREEZE_SSTREAM,,[define if the compiler has freeze in
      stringstream])
      fi
      ])