summaryrefslogtreecommitdiff
path: root/Source/kwsys/kwsys_ios_iostream.h.in
blob: 43fc4d57901cd294c035fd434dcf3334b36b83d6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
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