Macro: ac_cxx_have_long_long_for_iostream

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

# ac_cxx_have_long_long_for_iostream

Synopsis

  `AC_CXX_HAVE_LONG_LONG_FOR_IOSTREAM`

Version

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

Author

  Alain BARBET <alian@cpan.org>

Description

  Check if the compiler allow long long for [i|o]stream Seems that OpenBSD / gcc-3 don't have it.

  Eg:

  `#include <iostream>`
  `#ifdef HAVE_SSTREAM`
  `#include <strstream>`
  `#else`
  `#include <sstream>`
  `#endif`
  `#ifdef HAVE_NAMESPACES`
  `using namespace std;`
  `#endif`
  `ostream str((streambuf *)0);`
  `long long lo=1;`
  `str <<`
  `#ifdef HAVE_LONG_LONG_FOR_IOSTREAM`
  `(long int)`
  `#endif`
  `lo;`

M4 Source Code

      AC_DEFUN([AC_CXX_HAVE_LONG_LONG_FOR_IOSTREAM],
      [AC_CACHE_CHECK(whether the compiler allow long long for [i|o]stream,
      ac_cv_cxx_have_ll_for_iostream,
      [AC_REQUIRE([AC_CXX_NAMESPACES])
        AC_REQUIRE([AC_CXX_HAVE_SSTREAM])
        AC_LANG_SAVE
        AC_LANG_CPLUSPLUS
        AC_TRY_COMPILE([#include <iostream>
      #ifdef HAVE_SSTREAM
      #include <strstream>
      #else
      #include <sstream>
      #endif
      #ifdef HAVE_NAMESPACES
      using namespace std;
      #endif],[ ostream str((streambuf *)0); long long l=1; str << l; return 0;],
        ac_cv_cxx_have_ll_for_iostream=yes, ac_cv_cxx_have_ll_for_iostream=no)
        AC_LANG_RESTORE
      ])
      if test "$ac_cv_cxx_have_ll_for_iostream" = yes; then
         AC_DEFINE(HAVE_LONG_LONG_FOR_IOSTREAM,,[define if the compiler allow long long for [i|o]stream])
      fi
      ])