Download M4 Source Macro Index Page

ac_cxx_have_long_long_for_iostream

Synopsis

AC_CXX_HAVE_LONG_LONG_FOR_IOSTREAM

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;

Author

Alain BARBET <alian@cpan.org>

Last Modified

2002-09-04

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
])