diff options
Diffstat (limited to 'kwsys_ios_iostream.h.in')
-rw-r--r-- | kwsys_ios_iostream.h.in | 99 |
1 files changed, 99 insertions, 0 deletions
diff --git a/kwsys_ios_iostream.h.in b/kwsys_ios_iostream.h.in new file mode 100644 index 0000000..43fc4d5 --- /dev/null +++ b/kwsys_ios_iostream.h.in @@ -0,0 +1,99 @@ +/*============================================================================ + KWSys - Kitware System Library + Copyright 2000-2009 Kitware, Inc., Insight Software Consortium + + Distributed under the OSI-approved BSD License (the "License"); + see accompanying file Copyright.txt for details. + + This software is distributed WITHOUT ANY WARRANTY; without even the + implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the License for more information. +============================================================================*/ +#ifndef @KWSYS_NAMESPACE@_ios_iostream +#define @KWSYS_NAMESPACE@_ios_iostream + +#include <@KWSYS_NAMESPACE@/Configure.hxx> + +#ifdef _MSC_VER +# pragma warning (push, 1) +# pragma warning (disable: 4702) +# pragma warning (disable: 4995) /* Old streams are deprecated. */ +#endif + +#if @KWSYS_NAMESPACE@_IOS_USE_ANSI +# include <iostream> +#else +# include <iostream.h> +#endif + +// The HP implementation of iostream defines cin, cout, cerr, and clog +// as macros in order to do thread-private streams. +// See /opt/aCC/include/iostream/iostream.h for details. +// This block redefines the macros in a safe way that is also compatible +// with the HP definitions and the using declarations below. + +#if !@KWSYS_NAMESPACE@_IOS_USE_SSTREAM +# if defined(__HP_aCC) && (defined(HP_THREAD_SAFE) || defined(_THREAD_SAFE)) +# if defined(cin) && !defined(@KWSYS_NAMESPACE@_IOS_HP_HACK_CIN) +# define @KWSYS_NAMESPACE@_IOS_HP_HACK_CIN +# undef cin +# define cin __tcin.ref() +# endif +# if defined(cout) && !defined(@KWSYS_NAMESPACE@_IOS_HP_HACK_COUT) +# define @KWSYS_NAMESPACE@_IOS_HP_HACK_COUT +# undef cout +# define cout __tcout.ref() +# endif +# if defined(cerr) && !defined(@KWSYS_NAMESPACE@_IOS_HP_HACK_CERR) +# define @KWSYS_NAMESPACE@_IOS_HP_HACK_CERR +# undef cerr +# define cerr __tcerr.ref() +# endif +# if defined(clog) && !defined(@KWSYS_NAMESPACE@_IOS_HP_HACK_CLOG) +# define @KWSYS_NAMESPACE@_IOS_HP_HACK_CLOG +# undef clog +# define clog __tclog.ref() +# endif +# endif +#endif + +// If using our own sstream emulation code, put the standard +// streams in the same namespace. +#if !@KWSYS_NAMESPACE@_IOS_USE_SSTREAM +namespace @KWSYS_NAMESPACE@_ios +{ + typedef int streamsize; + typedef int streamoff; + using @KWSYS_NAMESPACE@_ios_namespace::ostream; + using @KWSYS_NAMESPACE@_ios_namespace::istream; + using @KWSYS_NAMESPACE@_ios_namespace::ios; + using @KWSYS_NAMESPACE@_ios_namespace::endl; + using @KWSYS_NAMESPACE@_ios_namespace::flush; +# if defined(@KWSYS_NAMESPACE@_IOS_HP_HACK_CIN) + using @KWSYS_NAMESPACE@_ios_namespace::__tcin; +# else + using @KWSYS_NAMESPACE@_ios_namespace::cin; +# endif +# if defined(@KWSYS_NAMESPACE@_IOS_HP_HACK_COUT) + using @KWSYS_NAMESPACE@_ios_namespace::__tcout; +# else + using @KWSYS_NAMESPACE@_ios_namespace::cout; +# endif +# if defined(@KWSYS_NAMESPACE@_IOS_HP_HACK_CERR) + using @KWSYS_NAMESPACE@_ios_namespace::__tcerr; +# else + using @KWSYS_NAMESPACE@_ios_namespace::cerr; +# endif +# if defined(@KWSYS_NAMESPACE@_IOS_HP_HACK_CLOG) + using @KWSYS_NAMESPACE@_ios_namespace::__tclog; +# else + using @KWSYS_NAMESPACE@_ios_namespace::clog; +# endif +} +#endif + +#ifdef _MSC_VER +# pragma warning(pop) +#endif + +#endif |