blob: eccfd349a4a58a0484a1170d330e955be326d1e4 [file] [log] [blame]
Howard Hinnantbc8d3f92010-05-11 19:42:161// -*- C++ -*-
2//===--------------------------- iosfwd -----------------------------------===//
3//
Howard Hinnantf5256e12010-05-11 21:36:014// The LLVM Compiler Infrastructure
Howard Hinnantbc8d3f92010-05-11 19:42:165//
Howard Hinnantb64f8b02010-11-16 22:09:026// 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:168//
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
Howard Hinnant0a111112011-05-13 21:52:4023class ios_base;
Howard Hinnantbc8d3f92010-05-11 19:42:1624template <class charT, class traits = char_traits<charT> > class basic_ios;
25
26template <class charT, class traits = char_traits<charT> > class basic_streambuf;
27template <class charT, class traits = char_traits<charT> > class basic_istream;
28template <class charT, class traits = char_traits<charT> > class basic_ostream;
29template <class charT, class traits = char_traits<charT> > class basic_iostream;
30
31template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
32 class basic_stringbuf;
33template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
34 class basic_istringstream;
35template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
36 class basic_ostringstream;
37template <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> >
38 class basic_stringstream;
39
40template <class charT, class traits = char_traits<charT> > class basic_filebuf;
41template <class charT, class traits = char_traits<charT> > class basic_ifstream;
42template <class charT, class traits = char_traits<charT> > class basic_ofstream;
43template <class charT, class traits = char_traits<charT> > class basic_fstream;
44
45template <class charT, class traits = char_traits<charT> > class istreambuf_iterator;
46template <class charT, class traits = char_traits<charT> > class ostreambuf_iterator;
47
48typedef basic_ios<char> ios;
49typedef basic_ios<wchar_t> wios;
50
51typedef basic_streambuf<char> streambuf;
52typedef basic_istream<char> istream;
53typedef basic_ostream<char> ostream;
54typedef basic_iostream<char> iostream;
55
56typedef basic_stringbuf<char> stringbuf;
57typedef basic_istringstream<char> istringstream;
58typedef basic_ostringstream<char> ostringstream;
59typedef basic_stringstream<char> stringstream;
60
61typedef basic_filebuf<char> filebuf;
62typedef basic_ifstream<char> ifstream;
63typedef basic_ofstream<char> ofstream;
64typedef basic_fstream<char> fstream;
65
66typedef basic_streambuf<wchar_t> wstreambuf;
67typedef basic_istream<wchar_t> wistream;
68typedef basic_ostream<wchar_t> wostream;
69typedef basic_iostream<wchar_t> wiostream;
70
71typedef basic_stringbuf<wchar_t> wstringbuf;
72typedef basic_istringstream<wchar_t> wistringstream;
73typedef basic_ostringstream<wchar_t> wostringstream;
74typedef basic_stringstream<wchar_t> wstringstream;
75
76typedef basic_filebuf<wchar_t> wfilebuf;
77typedef basic_ifstream<wchar_t> wifstream;
78typedef basic_ofstream<wchar_t> wofstream;
79typedef basic_fstream<wchar_t> wfstream;
80
81template <class state> class fpos;
82typedef fpos<char_traits<char>::state_type> streampos;
83typedef fpos<char_traits<wchar_t>::state_type> wstreampos;
84
85} // std
86
87*/
88
89#include <__config>
Howard Hinnantadff4892010-05-24 17:49:4190#include <wchar.h> // for mbstate_t
Howard Hinnantbc8d3f92010-05-11 19:42:1691
Howard Hinnant08e17472011-10-17 20:05:1092#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER)
Howard Hinnantbc8d3f92010-05-11 19:42:1693#pragma GCC system_header
Howard Hinnant08e17472011-10-17 20:05:1094#endif
Howard Hinnantbc8d3f92010-05-11 19:42:1695
96_LIBCPP_BEGIN_NAMESPACE_STD
97
Howard Hinnant83eade62013-03-06 23:30:1998class _LIBCPP_TYPE_VIS ios_base;
Howard Hinnant52c4eb22011-01-08 20:00:4899
Howard Hinnant0f678bd2013-08-12 18:38:34100template<class _CharT> struct _LIBCPP_TYPE_VIS_ONLY char_traits;
101template<class _Tp> class _LIBCPP_TYPE_VIS_ONLY allocator;
Howard Hinnantbc8d3f92010-05-11 19:42:16102
Howard Hinnantc0de2e42010-09-21 16:04:28103template <class _CharT, class _Traits = char_traits<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34104 class _LIBCPP_TYPE_VIS_ONLY basic_ios;
Howard Hinnantbc8d3f92010-05-11 19:42:16105
Howard Hinnantc0de2e42010-09-21 16:04:28106template <class _CharT, class _Traits = char_traits<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34107 class _LIBCPP_TYPE_VIS_ONLY basic_streambuf;
Howard Hinnantc0de2e42010-09-21 16:04:28108template <class _CharT, class _Traits = char_traits<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34109 class _LIBCPP_TYPE_VIS_ONLY basic_istream;
Howard Hinnantc0de2e42010-09-21 16:04:28110template <class _CharT, class _Traits = char_traits<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34111 class _LIBCPP_TYPE_VIS_ONLY basic_ostream;
Howard Hinnantc0de2e42010-09-21 16:04:28112template <class _CharT, class _Traits = char_traits<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34113 class _LIBCPP_TYPE_VIS_ONLY basic_iostream;
Howard Hinnantbc8d3f92010-05-11 19:42:16114
Howard Hinnantc0de2e42010-09-21 16:04:28115template <class _CharT, class _Traits = char_traits<_CharT>,
116 class _Allocator = allocator<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34117 class _LIBCPP_TYPE_VIS_ONLY basic_stringbuf;
Howard Hinnantc0de2e42010-09-21 16:04:28118template <class _CharT, class _Traits = char_traits<_CharT>,
119 class _Allocator = allocator<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34120 class _LIBCPP_TYPE_VIS_ONLY basic_istringstream;
Howard Hinnantc0de2e42010-09-21 16:04:28121template <class _CharT, class _Traits = char_traits<_CharT>,
122 class _Allocator = allocator<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34123 class _LIBCPP_TYPE_VIS_ONLY basic_ostringstream;
Howard Hinnantc0de2e42010-09-21 16:04:28124template <class _CharT, class _Traits = char_traits<_CharT>,
125 class _Allocator = allocator<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34126 class _LIBCPP_TYPE_VIS_ONLY basic_stringstream;
Howard Hinnantbc8d3f92010-05-11 19:42:16127
Howard Hinnantc0de2e42010-09-21 16:04:28128template <class _CharT, class _Traits = char_traits<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34129 class _LIBCPP_TYPE_VIS_ONLY basic_filebuf;
Howard Hinnantc0de2e42010-09-21 16:04:28130template <class _CharT, class _Traits = char_traits<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34131 class _LIBCPP_TYPE_VIS_ONLY basic_ifstream;
Howard Hinnantc0de2e42010-09-21 16:04:28132template <class _CharT, class _Traits = char_traits<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34133 class _LIBCPP_TYPE_VIS_ONLY basic_ofstream;
Howard Hinnantc0de2e42010-09-21 16:04:28134template <class _CharT, class _Traits = char_traits<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34135 class _LIBCPP_TYPE_VIS_ONLY basic_fstream;
Howard Hinnantbc8d3f92010-05-11 19:42:16136
Howard Hinnantc0de2e42010-09-21 16:04:28137template <class _CharT, class _Traits = char_traits<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34138 class _LIBCPP_TYPE_VIS_ONLY istreambuf_iterator;
Howard Hinnantc0de2e42010-09-21 16:04:28139template <class _CharT, class _Traits = char_traits<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34140 class _LIBCPP_TYPE_VIS_ONLY ostreambuf_iterator;
Howard Hinnantbc8d3f92010-05-11 19:42:16141
142typedef basic_ios<char> ios;
143typedef basic_ios<wchar_t> wios;
144
145typedef basic_streambuf<char> streambuf;
146typedef basic_istream<char> istream;
147typedef basic_ostream<char> ostream;
148typedef basic_iostream<char> iostream;
149
150typedef basic_stringbuf<char> stringbuf;
151typedef basic_istringstream<char> istringstream;
152typedef basic_ostringstream<char> ostringstream;
153typedef basic_stringstream<char> stringstream;
154
155typedef basic_filebuf<char> filebuf;
156typedef basic_ifstream<char> ifstream;
157typedef basic_ofstream<char> ofstream;
158typedef basic_fstream<char> fstream;
159
160typedef basic_streambuf<wchar_t> wstreambuf;
161typedef basic_istream<wchar_t> wistream;
162typedef basic_ostream<wchar_t> wostream;
163typedef basic_iostream<wchar_t> wiostream;
164
165typedef basic_stringbuf<wchar_t> wstringbuf;
166typedef basic_istringstream<wchar_t> wistringstream;
167typedef basic_ostringstream<wchar_t> wostringstream;
168typedef basic_stringstream<wchar_t> wstringstream;
169
170typedef basic_filebuf<wchar_t> wfilebuf;
171typedef basic_ifstream<wchar_t> wifstream;
172typedef basic_ofstream<wchar_t> wofstream;
173typedef basic_fstream<wchar_t> wfstream;
174
Howard Hinnant0f678bd2013-08-12 18:38:34175template <class _State> class _LIBCPP_TYPE_VIS_ONLY fpos;
Howard Hinnantadff4892010-05-24 17:49:41176typedef fpos<mbstate_t> streampos;
177typedef fpos<mbstate_t> wstreampos;
Howard Hinnantbc8d3f92010-05-11 19:42:16178#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS
Howard Hinnantadff4892010-05-24 17:49:41179typedef fpos<mbstate_t> u16streampos;
180typedef fpos<mbstate_t> u32streampos;
Howard Hinnant324bb032010-08-22 00:02:43181#endif // _LIBCPP_HAS_NO_UNICODE_CHARS
Howard Hinnantbc8d3f92010-05-11 19:42:16182
Jonathan Roelofsc6893ae2015-02-03 15:34:17183#if defined(_NEWLIB_VERSION)
184// On newlib, off_t is 'long int'
185typedef long int streamoff; // for char_traits in <string>
186#else
Howard Hinnantbc8d3f92010-05-11 19:42:16187typedef long long streamoff; // for char_traits in <string>
Jonathan Roelofsc6893ae2015-02-03 15:34:17188#endif
Howard Hinnantbc8d3f92010-05-11 19:42:16189
190template <class _CharT, // for <stdexcept>
191 class _Traits = char_traits<_CharT>,
Howard Hinnantc0de2e42010-09-21 16:04:28192 class _Allocator = allocator<_CharT> >
Howard Hinnant0f678bd2013-08-12 18:38:34193 class _LIBCPP_TYPE_VIS_ONLY basic_string;
Howard Hinnantbc8d3f92010-05-11 19:42:16194typedef basic_string<char, char_traits<char>, allocator<char> > string;
195typedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring;
196
197_LIBCPP_END_NAMESPACE_STD
198
199#endif // _LIBCPP_IOSFWD