1227825Stheraven// -*- C++ -*-
2227825Stheraven//===--------------------------- iosfwd -----------------------------------===//
3227825Stheraven//
4227825Stheraven//                     The LLVM Compiler Infrastructure
5227825Stheraven//
6227825Stheraven// This file is dual licensed under the MIT and the University of Illinois Open
7227825Stheraven// Source Licenses. See LICENSE.TXT for details.
8227825Stheraven//
9227825Stheraven//===----------------------------------------------------------------------===//
10227825Stheraven
11227825Stheraven#ifndef _LIBCPP_IOSFWD
12227825Stheraven#define _LIBCPP_IOSFWD
13227825Stheraven
14227825Stheraven/*
15227825Stheraven    iosfwd synopsis
16227825Stheraven
17227825Stheravennamespace std
18227825Stheraven{
19227825Stheraven
20227825Stheraventemplate<class charT> struct char_traits;
21227825Stheraventemplate<class T>     class allocator;
22227825Stheraven
23227825Stheravenclass ios_base;
24227825Stheraventemplate <class charT, class traits = char_traits<charT> > class basic_ios;
25227825Stheraven
26227825Stheraventemplate <class charT, class traits = char_traits<charT> > class basic_streambuf;
27227825Stheraventemplate <class charT, class traits = char_traits<charT> > class basic_istream;
28227825Stheraventemplate <class charT, class traits = char_traits<charT> > class basic_ostream;
29227825Stheraventemplate <class charT, class traits = char_traits<charT> > class basic_iostream;
30227825Stheraven
31227825Stheraventemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
32227825Stheraven    class basic_stringbuf;
33227825Stheraventemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
34227825Stheraven    class basic_istringstream;
35227825Stheraventemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
36227825Stheraven    class basic_ostringstream;
37227825Stheraventemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
38227825Stheraven    class basic_stringstream;
39227825Stheraven
40227825Stheraventemplate <class charT, class traits = char_traits<charT> > class basic_filebuf;
41227825Stheraventemplate <class charT, class traits = char_traits<charT> > class basic_ifstream;
42227825Stheraventemplate <class charT, class traits = char_traits<charT> > class basic_ofstream;
43227825Stheraventemplate <class charT, class traits = char_traits<charT> > class basic_fstream;
44227825Stheraven
45227825Stheraventemplate <class charT, class traits = char_traits<charT> > class istreambuf_iterator;
46227825Stheraventemplate <class charT, class traits = char_traits<charT> > class ostreambuf_iterator;
47227825Stheraven
48227825Stheraventypedef basic_ios<char>              ios;
49227825Stheraventypedef basic_ios<wchar_t>           wios;
50227825Stheraven
51227825Stheraventypedef basic_streambuf<char>        streambuf;
52227825Stheraventypedef basic_istream<char>          istream;
53227825Stheraventypedef basic_ostream<char>          ostream;
54227825Stheraventypedef basic_iostream<char>         iostream;
55227825Stheraven
56227825Stheraventypedef basic_stringbuf<char>        stringbuf;
57227825Stheraventypedef basic_istringstream<char>    istringstream;
58227825Stheraventypedef basic_ostringstream<char>    ostringstream;
59227825Stheraventypedef basic_stringstream<char>     stringstream;
60227825Stheraven
61227825Stheraventypedef basic_filebuf<char>          filebuf;
62227825Stheraventypedef basic_ifstream<char>         ifstream;
63227825Stheraventypedef basic_ofstream<char>         ofstream;
64227825Stheraventypedef basic_fstream<char>          fstream;
65227825Stheraven
66227825Stheraventypedef basic_streambuf<wchar_t>     wstreambuf;
67227825Stheraventypedef basic_istream<wchar_t>       wistream;
68227825Stheraventypedef basic_ostream<wchar_t>       wostream;
69227825Stheraventypedef basic_iostream<wchar_t>      wiostream;
70227825Stheraven
71227825Stheraventypedef basic_stringbuf<wchar_t>     wstringbuf;
72227825Stheraventypedef basic_istringstream<wchar_t> wistringstream;
73227825Stheraventypedef basic_ostringstream<wchar_t> wostringstream;
74227825Stheraventypedef basic_stringstream<wchar_t>  wstringstream;
75227825Stheraven
76227825Stheraventypedef basic_filebuf<wchar_t>       wfilebuf;
77227825Stheraventypedef basic_ifstream<wchar_t>      wifstream;
78227825Stheraventypedef basic_ofstream<wchar_t>      wofstream;
79227825Stheraventypedef basic_fstream<wchar_t>       wfstream;
80227825Stheraven
81227825Stheraventemplate <class state> class fpos;
82227825Stheraventypedef fpos<char_traits<char>::state_type>    streampos;
83227825Stheraventypedef fpos<char_traits<wchar_t>::state_type> wstreampos;
84227825Stheraven
85227825Stheraven}  // std
86227825Stheraven
87227825Stheraven*/
88227825Stheraven
89227825Stheraven#include <__config>
90227825Stheraven#include <wchar.h>  // for mbstate_t
91227825Stheraven
92227825Stheraven#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
93227825Stheraven#pragma GCC system_header
94227825Stheraven#endif
95227825Stheraven
96227825Stheraven_LIBCPP_BEGIN_NAMESPACE_STD
97227825Stheraven
98249989Sdimclass _LIBCPP_TYPE_VIS ios_base;
99227825Stheraven
100261272Sdimtemplate<class _CharT>  struct _LIBCPP_TYPE_VIS_ONLY char_traits;
101261272Sdimtemplate<class _Tp>     class _LIBCPP_TYPE_VIS_ONLY allocator;
102227825Stheraven
103227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT> >
104261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_ios;
105227825Stheraven
106227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT> >
107261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_streambuf;
108227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT> >
109261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_istream;
110227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT> >
111261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_ostream;
112227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT> >
113261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_iostream;
114227825Stheraven
115227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT>,
116227825Stheraven          class _Allocator = allocator<_CharT> >
117261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_stringbuf;
118227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT>,
119227825Stheraven          class _Allocator = allocator<_CharT> >
120261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_istringstream;
121227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT>,
122227825Stheraven          class _Allocator = allocator<_CharT> >
123261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_ostringstream;
124227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT>,
125227825Stheraven          class _Allocator = allocator<_CharT> >
126261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_stringstream;
127227825Stheraven
128227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT> >
129261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_filebuf;
130227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT> >
131261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_ifstream;
132227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT> >
133261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_ofstream;
134227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT> >
135261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_fstream;
136227825Stheraven
137227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT> >
138261272Sdim    class _LIBCPP_TYPE_VIS_ONLY istreambuf_iterator;
139227825Stheraventemplate <class _CharT, class _Traits = char_traits<_CharT> >
140261272Sdim    class _LIBCPP_TYPE_VIS_ONLY ostreambuf_iterator;
141227825Stheraven
142227825Stheraventypedef basic_ios<char>              ios;
143227825Stheraventypedef basic_ios<wchar_t>           wios;
144227825Stheraven
145227825Stheraventypedef basic_streambuf<char>        streambuf;
146227825Stheraventypedef basic_istream<char>          istream;
147227825Stheraventypedef basic_ostream<char>          ostream;
148227825Stheraventypedef basic_iostream<char>         iostream;
149227825Stheraven
150227825Stheraventypedef basic_stringbuf<char>        stringbuf;
151227825Stheraventypedef basic_istringstream<char>    istringstream;
152227825Stheraventypedef basic_ostringstream<char>    ostringstream;
153227825Stheraventypedef basic_stringstream<char>     stringstream;
154227825Stheraven
155227825Stheraventypedef basic_filebuf<char>          filebuf;
156227825Stheraventypedef basic_ifstream<char>         ifstream;
157227825Stheraventypedef basic_ofstream<char>         ofstream;
158227825Stheraventypedef basic_fstream<char>          fstream;
159227825Stheraven
160227825Stheraventypedef basic_streambuf<wchar_t>     wstreambuf;
161227825Stheraventypedef basic_istream<wchar_t>       wistream;
162227825Stheraventypedef basic_ostream<wchar_t>       wostream;
163227825Stheraventypedef basic_iostream<wchar_t>      wiostream;
164227825Stheraven
165227825Stheraventypedef basic_stringbuf<wchar_t>     wstringbuf;
166227825Stheraventypedef basic_istringstream<wchar_t> wistringstream;
167227825Stheraventypedef basic_ostringstream<wchar_t> wostringstream;
168227825Stheraventypedef basic_stringstream<wchar_t>  wstringstream;
169227825Stheraven
170227825Stheraventypedef basic_filebuf<wchar_t>       wfilebuf;
171227825Stheraventypedef basic_ifstream<wchar_t>      wifstream;
172227825Stheraventypedef basic_ofstream<wchar_t>      wofstream;
173227825Stheraventypedef basic_fstream<wchar_t>       wfstream;
174227825Stheraven
175261272Sdimtemplate <class _State>             class _LIBCPP_TYPE_VIS_ONLY fpos;
176227825Stheraventypedef fpos<mbstate_t>    streampos;
177227825Stheraventypedef fpos<mbstate_t>    wstreampos;
178227825Stheraven#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
179227825Stheraventypedef fpos<mbstate_t>    u16streampos;
180227825Stheraventypedef fpos<mbstate_t>    u32streampos;
181227825Stheraven#endif  // _LIBCPP_HAS_NO_UNICODE_CHARS
182227825Stheraven
183288943Sdim#if defined(_NEWLIB_VERSION)
184288943Sdim// On newlib, off_t is 'long int'
185288943Sdimtypedef long int streamoff;         // for char_traits in <string>
186288943Sdim#else
187227825Stheraventypedef long long streamoff;        // for char_traits in <string>
188288943Sdim#endif
189227825Stheraven
190227825Stheraventemplate <class _CharT,             // for <stdexcept>
191227825Stheraven          class _Traits = char_traits<_CharT>,
192227825Stheraven          class _Allocator = allocator<_CharT> >
193261272Sdim    class _LIBCPP_TYPE_VIS_ONLY basic_string;
194227825Stheraventypedef basic_string<char, char_traits<char>, allocator<char> > string;
195227825Stheraventypedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring;
196227825Stheraven
197227825Stheraven_LIBCPP_END_NAMESPACE_STD
198227825Stheraven
199227825Stheraven#endif  // _LIBCPP_IOSFWD
200