Subversion Repositories Kolibri OS

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
6554 serge 1
//  Forward declarations -*- C++ -*-
2
 
3
// Copyright (C) 1997-2015 Free Software Foundation, Inc.
4
//
5
// This file is part of the GNU ISO C++ Library.  This library is free
6
// software; you can redistribute it and/or modify it under the
7
// terms of the GNU General Public License as published by the
8
// Free Software Foundation; either version 3, or (at your option)
9
// any later version.
10
 
11
// This library is distributed in the hope that it will be useful,
12
// but WITHOUT ANY WARRANTY; without even the implied warranty of
13
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
// GNU General Public License for more details.
15
 
16
// Under Section 7 of GPL version 3, you are granted additional
17
// permissions described in the GCC Runtime Library Exception, version
18
// 3.1, as published by the Free Software Foundation.
19
 
20
// You should have received a copy of the GNU General Public License and
21
// a copy of the GCC Runtime Library Exception along with this program;
22
// see the files COPYING3 and COPYING.RUNTIME respectively.  If not, see
23
// .
24
 
25
/** @file include/iosfwd
26
 *  This is a Standard C++ Library header.
27
 */
28
 
29
//
30
// ISO C++ 14882: 27.2  Forward declarations
31
//
32
 
33
#ifndef _GLIBCXX_IOSFWD
34
#define _GLIBCXX_IOSFWD 1
35
 
36
#pragma GCC system_header
37
 
38
#include 
39
#include  	// For string forward declarations.
40
#include 
41
 
42
namespace std _GLIBCXX_VISIBILITY(default)
43
{
44
_GLIBCXX_BEGIN_NAMESPACE_VERSION
45
 
46
  /**
47
   *  @defgroup io I/O
48
   *
49
   *  Nearly all of the I/O classes are parameterized on the type of
50
   *  characters they read and write.  (The major exception is ios_base at
51
   *  the top of the hierarchy.)  This is a change from pre-Standard
52
   *  streams, which were not templates.
53
   *
54
   *  For ease of use and compatibility, all of the basic_* I/O-related
55
   *  classes are given typedef names for both of the builtin character
56
   *  widths (wide and narrow).  The typedefs are the same as the
57
   *  pre-Standard names, for example:
58
   *
59
   *  @code
60
   *     typedef basic_ifstream  ifstream;
61
   *  @endcode
62
   *
63
   *  Because properly forward-declaring these classes can be difficult, you
64
   *  should not do it yourself.  Instead, include the <iosfwd>
65
   *  header, which contains only declarations of all the I/O classes as
66
   *  well as the typedefs.  Trying to forward-declare the typedefs
67
   *  themselves (e.g., class ostream;) is not valid ISO C++.
68
   *
69
   *  For more specific declarations, see
70
   *  https://gcc.gnu.org/onlinedocs/libstdc++/manual/io.html#std.io.objects
71
   *
72
   *  @{
73
  */
74
  class ios_base;
75
 
76
  template >
77
    class basic_ios;
78
 
79
  template >
80
    class basic_streambuf;
81
 
82
  template >
83
    class basic_istream;
84
 
85
  template >
86
    class basic_ostream;
87
 
88
  template >
89
    class basic_iostream;
90
 
91
 
92
_GLIBCXX_BEGIN_NAMESPACE_CXX11
93
 
94
  template,
95
	    typename _Alloc = allocator<_CharT> >
96
    class basic_stringbuf;
97
 
98
  template,
99
	   typename _Alloc = allocator<_CharT> >
100
    class basic_istringstream;
101
 
102
  template,
103
	   typename _Alloc = allocator<_CharT> >
104
    class basic_ostringstream;
105
 
106
  template,
107
	   typename _Alloc = allocator<_CharT> >
108
    class basic_stringstream;
109
 
110
_GLIBCXX_END_NAMESPACE_CXX11
111
 
112
  template >
113
    class basic_filebuf;
114
 
115
  template >
116
    class basic_ifstream;
117
 
118
  template >
119
    class basic_ofstream;
120
 
121
  template >
122
    class basic_fstream;
123
 
124
  template >
125
    class istreambuf_iterator;
126
 
127
  template >
128
    class ostreambuf_iterator;
129
 
130
 
131
  /// Base class for @c char streams.
132
  typedef basic_ios 		ios;
133
 
134
  /// Base class for @c char buffers.
135
  typedef basic_streambuf 	streambuf;
136
 
137
  /// Base class for @c char input streams.
138
  typedef basic_istream 		istream;
139
 
140
  /// Base class for @c char output streams.
141
  typedef basic_ostream 		ostream;
142
 
143
  /// Base class for @c char mixed input and output streams.
144
  typedef basic_iostream 		iostream;
145
 
146
  /// Class for @c char memory buffers.
147
  typedef basic_stringbuf 	stringbuf;
148
 
149
  /// Class for @c char input memory streams.
150
  typedef basic_istringstream 	istringstream;
151
 
152
  /// Class for @c char output memory streams.
153
  typedef basic_ostringstream 	ostringstream;
154
 
155
  /// Class for @c char mixed input and output memory streams.
156
  typedef basic_stringstream 	stringstream;
157
 
158
  /// Class for @c char file buffers.
159
  typedef basic_filebuf 		filebuf;
160
 
161
  /// Class for @c char input file streams.
162
  typedef basic_ifstream 		ifstream;
163
 
164
  /// Class for @c char output file streams.
165
  typedef basic_ofstream 		ofstream;
166
 
167
  /// Class for @c char mixed input and output file streams.
168
  typedef basic_fstream 		fstream;
169
 
170
#ifdef _GLIBCXX_USE_WCHAR_T
171
  /// Base class for @c wchar_t streams.
172
  typedef basic_ios 		wios;
173
 
174
  /// Base class for @c wchar_t buffers.
175
  typedef basic_streambuf 	wstreambuf;
176
 
177
  /// Base class for @c wchar_t input streams.
178
  typedef basic_istream 	wistream;
179
 
180
  /// Base class for @c wchar_t output streams.
181
  typedef basic_ostream 	wostream;
182
 
183
  /// Base class for @c wchar_t mixed input and output streams.
184
  typedef basic_iostream 	wiostream;
185
 
186
  /// Class for @c wchar_t memory buffers.
187
  typedef basic_stringbuf 	wstringbuf;
188
 
189
  /// Class for @c wchar_t input memory streams.
190
  typedef basic_istringstream 	wistringstream;
191
 
192
  /// Class for @c wchar_t output memory streams.
193
  typedef basic_ostringstream 	wostringstream;
194
 
195
  /// Class for @c wchar_t mixed input and output memory streams.
196
  typedef basic_stringstream 	wstringstream;
197
 
198
  /// Class for @c wchar_t file buffers.
199
  typedef basic_filebuf 	wfilebuf;
200
 
201
  /// Class for @c wchar_t input file streams.
202
  typedef basic_ifstream 	wifstream;
203
 
204
  /// Class for @c wchar_t output file streams.
205
  typedef basic_ofstream 	wofstream;
206
 
207
  /// Class for @c wchar_t mixed input and output file streams.
208
  typedef basic_fstream 	wfstream;
209
#endif
210
  /** @}  */
211
 
212
_GLIBCXX_END_NAMESPACE_VERSION
213
} // namespace
214
 
215
#endif /* _GLIBCXX_IOSFWD */