summaryrefslogtreecommitdiffstats
path: root/stlport/stlport/stl/_iosfwd.h
blob: e31db319c8883591d29e1feb329f62ca77194dce (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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
#ifndef _STLP_INTERNAL_IOSFWD
#define _STLP_INTERNAL_IOSFWD

#if defined (__sgi) && !defined (__GNUC__) && !defined (_STANDARD_C_PLUS_PLUS)
#  error This header file requires the -LANG:std option
#endif

// This file provides forward declarations of the most important I/O
// classes.  Note that almost all of those classes are class templates,
// with default template arguments.  According to the C++ standard,
// if a class template is declared more than once in the same scope
// then only one of those declarations may have default arguments.

// <iosfwd> contains the same declarations as other headers, and including
// both <iosfwd> and (say) <iostream> is permitted.  This means that only
// one header may contain those default template arguments.

// In this implementation, the declarations in <iosfwd> contain default
// template arguments.  All of the other I/O headers include <iosfwd>.

#ifndef _STLP_CHAR_TRAITS_H
#  include <stl/char_traits.h>
#endif

_STLP_BEGIN_NAMESPACE

class ios_base;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
class basic_ios;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
class basic_streambuf;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
class basic_istream;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
class basic_ostream;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
class basic_iostream;

template <class _CharT, _STLP_DFL_TMPL_PARAM( _Traits , char_traits<_CharT>),
          _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) >
class basic_stringbuf;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>),
          _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) >
class basic_istringstream;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>),
          _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) >
class basic_ostringstream;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>),
          _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) >
class basic_stringstream;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
class basic_filebuf;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
class basic_ifstream;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
class basic_ofstream;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
class basic_fstream;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
class istreambuf_iterator;

template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
class ostreambuf_iterator;

typedef basic_ios<char, char_traits<char> >    ios;

#if !defined (_STLP_NO_WCHAR_T)
typedef basic_ios<wchar_t, char_traits<wchar_t> > wios;
#endif

// Forward declaration of class locale, and of the most important facets.
class locale;
template <class _Facet>
#if defined (_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS)
struct _Use_facet {
  const locale& __loc;
  _Use_facet(const locale& __p_loc) : __loc(__p_loc) {}
  inline const _Facet& operator *() const;
};
#  define use_facet *_Use_facet
#else
inline const _Facet& use_facet(const locale&);
#endif

template <class _CharT> class ctype;
template <class _CharT> class ctype_byname;
template <class _CharT> class collate;
template <class _CharT> class collate_byname;

_STLP_TEMPLATE_NULL class ctype<char>;
_STLP_TEMPLATE_NULL class ctype_byname<char>;
_STLP_TEMPLATE_NULL class collate<char>;
_STLP_TEMPLATE_NULL class collate_byname<char>;

#if !defined (_STLP_NO_WCHAR_T)
_STLP_TEMPLATE_NULL class ctype<wchar_t>;
_STLP_TEMPLATE_NULL class ctype_byname<wchar_t>;
_STLP_TEMPLATE_NULL class collate<wchar_t>;
_STLP_TEMPLATE_NULL class collate_byname<wchar_t>;
#endif

#if !(defined (__SUNPRO_CC) && __SUNPRO_CC < 0x500 )
// Typedefs for ordinary (narrow-character) streams.
//_STLP_TEMPLATE_NULL class basic_streambuf<char, char_traits<char> >;
#endif

typedef basic_istream<char, char_traits<char> >  istream;
typedef basic_ostream<char, char_traits<char> >  ostream;
typedef basic_iostream<char, char_traits<char> > iostream;
typedef basic_streambuf<char,char_traits<char> > streambuf;

typedef basic_stringbuf<char, char_traits<char>, allocator<char> >     stringbuf;
typedef basic_istringstream<char, char_traits<char>, allocator<char> > istringstream;
typedef basic_ostringstream<char, char_traits<char>, allocator<char> > ostringstream;
typedef basic_stringstream<char, char_traits<char>, allocator<char> >  stringstream;

typedef basic_filebuf<char, char_traits<char> >  filebuf;
typedef basic_ifstream<char, char_traits<char> > ifstream;
typedef basic_ofstream<char, char_traits<char> > ofstream;
typedef basic_fstream<char, char_traits<char> >  fstream;

#if !defined (_STLP_NO_WCHAR_T)
// Typedefs for wide-character streams.
typedef basic_streambuf<wchar_t, char_traits<wchar_t> > wstreambuf;
typedef basic_istream<wchar_t, char_traits<wchar_t> >   wistream;
typedef basic_ostream<wchar_t, char_traits<wchar_t> >   wostream;
typedef basic_iostream<wchar_t, char_traits<wchar_t> >  wiostream;

typedef basic_stringbuf<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >     wstringbuf;
typedef basic_istringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wistringstream;
typedef basic_ostringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wostringstream;
typedef basic_stringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >  wstringstream;

typedef basic_filebuf<wchar_t, char_traits<wchar_t> >  wfilebuf;
typedef basic_ifstream<wchar_t, char_traits<wchar_t> > wifstream;
typedef basic_ofstream<wchar_t, char_traits<wchar_t> > wofstream;
typedef basic_fstream<wchar_t, char_traits<wchar_t> >  wfstream;
#endif

_STLP_END_NAMESPACE

#endif

// Local Variables:
// mode:C++
// End: