blob: 0e5c683ac0b7d16ded6f50754af431588b8e5499 [file] [log] [blame]
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00001// -*- C++ -*-
2//===--------------------------- iosfwd -----------------------------------===//
3//
Howard Hinnantf5256e12010-05-11 21:36:01 +00004// The LLVM Compiler Infrastructure
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00005//
Howard Hinnantb64f8b02010-11-16 22:09:02 +00006// This file is dual licensed under the MIT and the University of Illinois Open
7// Source Licenses. See LICENSE.TXT for details.
Howard Hinnantbc8d3f92010-05-11 19:42:16 +00008//
9//===----------------------------------------------------------------------===//
10
11#ifndef _LIBCPP_IOSFWD
12#define _LIBCPP_IOSFWD
13
14/*
15 iosfwd synopsis
16
17namespace std
18{
19
20template<class charT> struct char_traits;
21template<class T> class allocator;
22
23template <class charT, class traits = char_traits<charT> > class basic_ios;
24
25template <class charT, class traits = char_traits<charT> > class basic_streambuf;
26template <class charT, class traits = char_traits<charT> > class basic_istream;
27template <class charT, class traits = char_traits<charT> > class basic_ostream;
28template <class charT, class traits = char_traits<charT> > class basic_iostream;
29
30template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
31 class basic_stringbuf;
32template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
33 class basic_istringstream;
34template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
35 class basic_ostringstream;
36template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
37 class basic_stringstream;
38
39template <class charT, class traits = char_traits<charT> > class basic_filebuf;
40template <class charT, class traits = char_traits<charT> > class basic_ifstream;
41template <class charT, class traits = char_traits<charT> > class basic_ofstream;
42template <class charT, class traits = char_traits<charT> > class basic_fstream;
43
44template <class charT, class traits = char_traits<charT> > class istreambuf_iterator;
45template <class charT, class traits = char_traits<charT> > class ostreambuf_iterator;
46
47typedef basic_ios<char> ios;
48typedef basic_ios<wchar_t> wios;
49
50typedef basic_streambuf<char> streambuf;
51typedef basic_istream<char> istream;
52typedef basic_ostream<char> ostream;
53typedef basic_iostream<char> iostream;
54
55typedef basic_stringbuf<char> stringbuf;
56typedef basic_istringstream<char> istringstream;
57typedef basic_ostringstream<char> ostringstream;
58typedef basic_stringstream<char> stringstream;
59
60typedef basic_filebuf<char> filebuf;
61typedef basic_ifstream<char> ifstream;
62typedef basic_ofstream<char> ofstream;
63typedef basic_fstream<char> fstream;
64
65typedef basic_streambuf<wchar_t> wstreambuf;
66typedef basic_istream<wchar_t> wistream;
67typedef basic_ostream<wchar_t> wostream;
68typedef basic_iostream<wchar_t> wiostream;
69
70typedef basic_stringbuf<wchar_t> wstringbuf;
71typedef basic_istringstream<wchar_t> wistringstream;
72typedef basic_ostringstream<wchar_t> wostringstream;
73typedef basic_stringstream<wchar_t> wstringstream;
74
75typedef basic_filebuf<wchar_t> wfilebuf;
76typedef basic_ifstream<wchar_t> wifstream;
77typedef basic_ofstream<wchar_t> wofstream;
78typedef basic_fstream<wchar_t> wfstream;
79
80template <class state> class fpos;
81typedef fpos<char_traits<char>::state_type> streampos;
82typedef fpos<char_traits<wchar_t>::state_type> wstreampos;
83
84} // std
85
86*/
87
88#include <__config>
Howard Hinnantadff4892010-05-24 17:49:41 +000089#include <wchar.h> // for mbstate_t
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000090
91#pragma GCC system_header
92
93_LIBCPP_BEGIN_NAMESPACE_STD
94
Howard Hinnant52c4eb22011-01-08 20:00:48 +000095class ios_base;
96
Howard Hinnant36cdf022010-09-10 16:42:26 +000097template<class _CharT> struct _LIBCPP_VISIBLE char_traits;
98template<class _Tp> class _LIBCPP_VISIBLE allocator;
Howard Hinnantbc8d3f92010-05-11 19:42:16 +000099
Howard Hinnantc0de2e42010-09-21 16:04:28 +0000100template <class _CharT, class _Traits = char_traits<_CharT> >
101 class _LIBCPP_VISIBLE basic_ios;
Howard Hinnantbc8d3f92010-05-11 19:42:16 +0000102
Howard Hinnantc0de2e42010-09-21 16:04:28 +0000103template <class _CharT, class _Traits = char_traits<_CharT> >
104 class _LIBCPP_VISIBLE basic_streambuf;
105template <class _CharT, class _Traits = char_traits<_CharT> >
106 class _LIBCPP_VISIBLE basic_istream;
107template <class _CharT, class _Traits = char_traits<_CharT> >
108 class _LIBCPP_VISIBLE basic_ostream;
109template <class _CharT, class _Traits = char_traits<_CharT> >
110 class _LIBCPP_VISIBLE basic_iostream;
Howard Hinnantbc8d3f92010-05-11 19:42:16 +0000111
Howard Hinnantc0de2e42010-09-21 16:04:28 +0000112template <class _CharT, class _Traits = char_traits<_CharT>,
113 class _Allocator = allocator<_CharT> >
114 class _LIBCPP_VISIBLE basic_stringbuf;
115template <class _CharT, class _Traits = char_traits<_CharT>,
116 class _Allocator = allocator<_CharT> >
117 class _LIBCPP_VISIBLE basic_istringstream;
118template <class _CharT, class _Traits = char_traits<_CharT>,
119 class _Allocator = allocator<_CharT> >
120 class _LIBCPP_VISIBLE basic_ostringstream;
121template <class _CharT, class _Traits = char_traits<_CharT>,
122 class _Allocator = allocator<_CharT> >
123 class _LIBCPP_VISIBLE basic_stringstream;
Howard Hinnantbc8d3f92010-05-11 19:42:16 +0000124
Howard Hinnantc0de2e42010-09-21 16:04:28 +0000125template <class _CharT, class _Traits = char_traits<_CharT> >
126 class _LIBCPP_VISIBLE basic_filebuf;
127template <class _CharT, class _Traits = char_traits<_CharT> >
128 class _LIBCPP_VISIBLE basic_ifstream;
129template <class _CharT, class _Traits = char_traits<_CharT> >
130 class _LIBCPP_VISIBLE basic_ofstream;
131template <class _CharT, class _Traits = char_traits<_CharT> >
132 class _LIBCPP_VISIBLE basic_fstream;
Howard Hinnantbc8d3f92010-05-11 19:42:16 +0000133
Howard Hinnantc0de2e42010-09-21 16:04:28 +0000134template <class _CharT, class _Traits = char_traits<_CharT> >
135 class _LIBCPP_VISIBLE istreambuf_iterator;
136template <class _CharT, class _Traits = char_traits<_CharT> >
137 class _LIBCPP_VISIBLE ostreambuf_iterator;
Howard Hinnantbc8d3f92010-05-11 19:42:16 +0000138
139typedef basic_ios<char> ios;
140typedef basic_ios<wchar_t> wios;
141
142typedef basic_streambuf<char> streambuf;
143typedef basic_istream<char> istream;
144typedef basic_ostream<char> ostream;
145typedef basic_iostream<char> iostream;
146
147typedef basic_stringbuf<char> stringbuf;
148typedef basic_istringstream<char> istringstream;
149typedef basic_ostringstream<char> ostringstream;
150typedef basic_stringstream<char> stringstream;
151
152typedef basic_filebuf<char> filebuf;
153typedef basic_ifstream<char> ifstream;
154typedef basic_ofstream<char> ofstream;
155typedef basic_fstream<char> fstream;
156
157typedef basic_streambuf<wchar_t> wstreambuf;
158typedef basic_istream<wchar_t> wistream;
159typedef basic_ostream<wchar_t> wostream;
160typedef basic_iostream<wchar_t> wiostream;
161
162typedef basic_stringbuf<wchar_t> wstringbuf;
163typedef basic_istringstream<wchar_t> wistringstream;
164typedef basic_ostringstream<wchar_t> wostringstream;
165typedef basic_stringstream<wchar_t> wstringstream;
166
167typedef basic_filebuf<wchar_t> wfilebuf;
168typedef basic_ifstream<wchar_t> wifstream;
169typedef basic_ofstream<wchar_t> wofstream;
170typedef basic_fstream<wchar_t> wfstream;
171
Howard Hinnantc0de2e42010-09-21 16:04:28 +0000172template <class _State> class _LIBCPP_VISIBLE fpos;
Howard Hinnantadff4892010-05-24 17:49:41 +0000173typedef fpos<mbstate_t> streampos;
174typedef fpos<mbstate_t> wstreampos;
Howard Hinnantbc8d3f92010-05-11 19:42:16 +0000175#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
Howard Hinnantadff4892010-05-24 17:49:41 +0000176typedef fpos<mbstate_t> u16streampos;
177typedef fpos<mbstate_t> u32streampos;
Howard Hinnant324bb032010-08-22 00:02:43 +0000178#endif // _LIBCPP_HAS_NO_UNICODE_CHARS
Howard Hinnantbc8d3f92010-05-11 19:42:16 +0000179
180typedef long long streamoff; // for char_traits in <string>
181
182template <class _CharT, // for <stdexcept>
183 class _Traits = char_traits<_CharT>,
Howard Hinnantc0de2e42010-09-21 16:04:28 +0000184 class _Allocator = allocator<_CharT> >
185 class _LIBCPP_VISIBLE basic_string;
Howard Hinnantbc8d3f92010-05-11 19:42:16 +0000186typedef basic_string<char, char_traits<char>, allocator<char> > string;
187typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring;
188
189_LIBCPP_END_NAMESPACE_STD
190
191#endif // _LIBCPP_IOSFWD