/*============================================================================ 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 vtksys_ios_iostream #define vtksys_ios_iostream #include #ifdef _MSC_VER # pragma warning (push, 1) # pragma warning (disable: 4702) # pragma warning (disable: 4995) /* Old streams are deprecated. */ #endif #if vtksys_IOS_USE_ANSI # include #else # include #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 !vtksys_IOS_USE_SSTREAM # if defined(__HP_aCC) && (defined(HP_THREAD_SAFE) || defined(_THREAD_SAFE)) # if defined(cin) && !defined(vtksys_IOS_HP_HACK_CIN) # define vtksys_IOS_HP_HACK_CIN # undef cin # define cin __tcin.ref() # endif # if defined(cout) && !defined(vtksys_IOS_HP_HACK_COUT) # define vtksys_IOS_HP_HACK_COUT # undef cout # define cout __tcout.ref() # endif # if defined(cerr) && !defined(vtksys_IOS_HP_HACK_CERR) # define vtksys_IOS_HP_HACK_CERR # undef cerr # define cerr __tcerr.ref() # endif # if defined(clog) && !defined(vtksys_IOS_HP_HACK_CLOG) # define vtksys_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 !vtksys_IOS_USE_SSTREAM namespace vtksys_ios { typedef int streamsize; typedef int streamoff; using vtksys_ios_namespace::ostream; using vtksys_ios_namespace::istream; using vtksys_ios_namespace::ios; using vtksys_ios_namespace::endl; using vtksys_ios_namespace::flush; # if defined(vtksys_IOS_HP_HACK_CIN) using vtksys_ios_namespace::__tcin; # else using vtksys_ios_namespace::cin; # endif # if defined(vtksys_IOS_HP_HACK_COUT) using vtksys_ios_namespace::__tcout; # else using vtksys_ios_namespace::cout; # endif # if defined(vtksys_IOS_HP_HACK_CERR) using vtksys_ios_namespace::__tcerr; # else using vtksys_ios_namespace::cerr; # endif # if defined(vtksys_IOS_HP_HACK_CLOG) using vtksys_ios_namespace::__tclog; # else using vtksys_ios_namespace::clog; # endif } #endif #ifdef _MSC_VER # pragma warning(pop) #endif #endif