williamr@2: /* williamr@2: * © Portions copyright (c) 2006-2007 Nokia Corporation. All rights reserved. williamr@2: * williamr@2: * Copyright (c) 1999 williamr@2: * Silicon Graphics Computer Systems, Inc. williamr@2: * williamr@2: * Copyright (c) 1999 williamr@2: * Boris Fomitchev williamr@2: * williamr@2: * This material is provided "as is", with absolutely no warranty expressed williamr@2: * or implied. Any use is at your own risk. williamr@2: * williamr@2: * Permission to use or copy this software for any purpose is hereby granted williamr@2: * without fee, provided the above notices are retained on all copies. williamr@2: * Permission to modify the code and to distribute modified code is granted, williamr@2: * provided the above notices are retained, and a notice that the code was williamr@2: * modified is included with the above copyright notice. williamr@2: * williamr@2: */ williamr@2: williamr@2: #ifndef _STLP_IOSTREAM williamr@2: #define _STLP_IOSTREAM williamr@2: williamr@2: # ifndef _STLP_OUTERMOST_HEADER_ID williamr@2: # define _STLP_OUTERMOST_HEADER_ID 0x1037 williamr@2: # include williamr@2: # endif williamr@2: williamr@2: # ifdef _STLP_PRAGMA_ONCE williamr@2: # pragma once williamr@2: # endif williamr@2: williamr@2: # if defined (_STLP_OWN_IOSTREAMS) williamr@2: williamr@2: #include williamr@2: #include williamr@2: williamr@2: _STLP_BEGIN_NAMESPACE williamr@2: williamr@2: #ifndef _STLP_USE_NAMESPACES williamr@2: // in case of SGI iostreams, we have to rename our streams not to clash with those williamr@2: // provided in native lib williamr@2: # define cin _STLP_cin williamr@2: # define cout _STLP_cout williamr@2: # define cerr _STLP_cerr williamr@2: # define clog _STLP_clog williamr@2: #endif williamr@2: williamr@2: // Note: cin and wcin are both associated with stdio. The C standard williamr@2: // (Amendment 1, section 4.6.2.1) says that it is an error to mix williamr@2: // wide- and narrow-oriented I/O on the same stream. This implies williamr@2: // that it is an error to use both cin and wcin in the same C++ williamr@2: // program; the same applies to cout and wcout, and cerr/clog and williamr@2: // wcerr/wclog. williamr@2: #if defined(__LIBSTD_CPP_SYMBIAN32_WSD__) || defined(_STLP_LIBSTD_CPP_NO_STATIC_VAR_) williamr@2: _STLP_DECLSPEC ostream& GetCErrStream(); williamr@2: _STLP_DECLSPEC ostream& GetCoutStream(); williamr@2: _STLP_DECLSPEC ostream& GetClogStream(); williamr@2: _STLP_DECLSPEC istream& GetCinStream(); williamr@2: williamr@2: //#define std::cerr (std::GetCErrStream()) williamr@2: #define cerr GetCErrStream() williamr@2: //#define std::cin (std::GetCinStream()) williamr@2: #define cin GetCinStream() williamr@2: //#define std::cout (std::GetCoutStream()) williamr@2: #define cout GetCoutStream() williamr@2: //#define std::clog (std::GetClogStream()) williamr@2: #define clog GetClogStream() williamr@2: #else //__LIBSTD_CPP_SYMBIAN32_WSD__ williamr@2: extern _STLP_DECLSPEC istream cin; williamr@2: extern _STLP_DECLSPEC ostream cout; williamr@2: extern _STLP_DECLSPEC ostream cerr; williamr@2: extern _STLP_DECLSPEC ostream clog; williamr@2: #endif //__LIBSTD_CPP_SYMBIAN32_WSD__ williamr@2: williamr@2: # ifndef _STLP_NO_WCHAR_T williamr@2: # if defined(__LIBSTD_CPP_SYMBIAN32_WSD__) || defined(_STLP_LIBSTD_CPP_NO_STATIC_VAR_) williamr@2: _STLP_DECLSPEC wostream& GetWCErrStream(); williamr@2: _STLP_DECLSPEC wostream& GetWCoutStream(); williamr@2: _STLP_DECLSPEC wostream& GetWClogStream(); williamr@2: _STLP_DECLSPEC wistream& GetWCinStream(); williamr@2: williamr@2: #define wcerr GetWCErrStream() williamr@2: #define wcin GetWCinStream() williamr@2: #define wcout GetWCoutStream() williamr@2: #define wclog GetWClogStream() williamr@2: #else //__LIBSTD_CPP_SYMBIAN32_WSD__ williamr@2: extern _STLP_DECLSPEC wistream wcin; williamr@2: extern _STLP_DECLSPEC wostream wcout; williamr@2: extern _STLP_DECLSPEC wostream wcerr; williamr@2: extern _STLP_DECLSPEC wostream wclog; williamr@2: #endif //__LIBSTD_CPP_SYMBIAN32_WSD__ williamr@2: # endif williamr@2: williamr@2: # ifndef __LOCALE_INITIALIZED williamr@2: # define __LOCALE_INITIALIZED williamr@2: # if !defined(__LIBSTD_CPP_SYMBIAN32_WSD__) && !defined(_STLP_LIBSTD_CPP_NO_STATIC_VAR_) williamr@2: // Global initializer object, to ensure initialization of locale subsystem. williamr@2: static ios_base::_Loc_init _LocInit; williamr@2: # endif williamr@2: # endif williamr@2: williamr@2: # ifndef __IOS_BASE_INITIALIZED williamr@2: # define __IOS_BASE_INITIALIZED williamr@2: # if !defined(__LIBSTD_CPP_SYMBIAN32_WSD__) && !defined(_STLP_LIBSTD_CPP_NO_STATIC_VAR_) williamr@2: // Global initializer object, to ensure construction of static objects. williamr@2: static ios_base::Init _IosInit; williamr@2: # endif williamr@2: # endif williamr@2: williamr@2: _STLP_END_NAMESPACE williamr@2: williamr@2: # elif defined ( _STLP_USE_NO_IOSTREAMS ) williamr@2: # include williamr@2: # else williamr@2: williamr@2: # include williamr@2: williamr@2: # endif /* STL_USE_NO_IOSTREAMS */ williamr@2: williamr@2: # if (_STLP_OUTERMOST_HEADER_ID == 0x1037) williamr@2: # include williamr@2: # undef _STLP_OUTERMOST_HEADER_ID williamr@2: # endif williamr@2: williamr@2: #endif /* _STLP_IOSTREAM */ williamr@2: williamr@2: // Local Variables: williamr@2: // mode:C++ williamr@2: // End: