17a984708SDavid Chisnall// -*- C++ -*- 27a984708SDavid Chisnall//===--------------------------- iosfwd -----------------------------------===// 37a984708SDavid Chisnall// 47a984708SDavid Chisnall// The LLVM Compiler Infrastructure 57a984708SDavid Chisnall// 67a984708SDavid Chisnall// This file is dual licensed under the MIT and the University of Illinois Open 77a984708SDavid Chisnall// Source Licenses. See LICENSE.TXT for details. 87a984708SDavid Chisnall// 97a984708SDavid Chisnall//===----------------------------------------------------------------------===// 107a984708SDavid Chisnall 117a984708SDavid Chisnall#ifndef _LIBCPP_IOSFWD 127a984708SDavid Chisnall#define _LIBCPP_IOSFWD 137a984708SDavid Chisnall 147a984708SDavid Chisnall/* 157a984708SDavid Chisnall iosfwd synopsis 167a984708SDavid Chisnall 177a984708SDavid Chisnallnamespace std 187a984708SDavid Chisnall{ 197a984708SDavid Chisnall 207a984708SDavid Chisnalltemplate<class charT> struct char_traits; 21*b5893f02SDimitry Andrictemplate<> struct char_traits<char>; 22*b5893f02SDimitry Andrictemplate<> struct char_traits<char8_t>; // C++20 23*b5893f02SDimitry Andrictemplate<> struct char_traits<char16_t>; 24*b5893f02SDimitry Andrictemplate<> struct char_traits<char32_t>; 25*b5893f02SDimitry Andrictemplate<> struct char_traits<wchar_t>; 26*b5893f02SDimitry Andric 277a984708SDavid Chisnalltemplate<class T> class allocator; 287a984708SDavid Chisnall 297a984708SDavid Chisnallclass ios_base; 307a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT> > class basic_ios; 317a984708SDavid Chisnall 327a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT> > class basic_streambuf; 337a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT> > class basic_istream; 347a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT> > class basic_ostream; 357a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT> > class basic_iostream; 367a984708SDavid Chisnall 377a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> > 387a984708SDavid Chisnall class basic_stringbuf; 397a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> > 407a984708SDavid Chisnall class basic_istringstream; 417a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> > 427a984708SDavid Chisnall class basic_ostringstream; 437a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT>, class Allocator = allocator<charT> > 447a984708SDavid Chisnall class basic_stringstream; 457a984708SDavid Chisnall 467a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT> > class basic_filebuf; 477a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT> > class basic_ifstream; 487a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT> > class basic_ofstream; 497a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT> > class basic_fstream; 507a984708SDavid Chisnall 517a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT> > class istreambuf_iterator; 527a984708SDavid Chisnalltemplate <class charT, class traits = char_traits<charT> > class ostreambuf_iterator; 537a984708SDavid Chisnall 547a984708SDavid Chisnalltypedef basic_ios<char> ios; 557a984708SDavid Chisnalltypedef basic_ios<wchar_t> wios; 567a984708SDavid Chisnall 577a984708SDavid Chisnalltypedef basic_streambuf<char> streambuf; 587a984708SDavid Chisnalltypedef basic_istream<char> istream; 597a984708SDavid Chisnalltypedef basic_ostream<char> ostream; 607a984708SDavid Chisnalltypedef basic_iostream<char> iostream; 617a984708SDavid Chisnall 627a984708SDavid Chisnalltypedef basic_stringbuf<char> stringbuf; 637a984708SDavid Chisnalltypedef basic_istringstream<char> istringstream; 647a984708SDavid Chisnalltypedef basic_ostringstream<char> ostringstream; 657a984708SDavid Chisnalltypedef basic_stringstream<char> stringstream; 667a984708SDavid Chisnall 677a984708SDavid Chisnalltypedef basic_filebuf<char> filebuf; 687a984708SDavid Chisnalltypedef basic_ifstream<char> ifstream; 697a984708SDavid Chisnalltypedef basic_ofstream<char> ofstream; 707a984708SDavid Chisnalltypedef basic_fstream<char> fstream; 717a984708SDavid Chisnall 727a984708SDavid Chisnalltypedef basic_streambuf<wchar_t> wstreambuf; 737a984708SDavid Chisnalltypedef basic_istream<wchar_t> wistream; 747a984708SDavid Chisnalltypedef basic_ostream<wchar_t> wostream; 757a984708SDavid Chisnalltypedef basic_iostream<wchar_t> wiostream; 767a984708SDavid Chisnall 777a984708SDavid Chisnalltypedef basic_stringbuf<wchar_t> wstringbuf; 787a984708SDavid Chisnalltypedef basic_istringstream<wchar_t> wistringstream; 797a984708SDavid Chisnalltypedef basic_ostringstream<wchar_t> wostringstream; 807a984708SDavid Chisnalltypedef basic_stringstream<wchar_t> wstringstream; 817a984708SDavid Chisnall 827a984708SDavid Chisnalltypedef basic_filebuf<wchar_t> wfilebuf; 837a984708SDavid Chisnalltypedef basic_ifstream<wchar_t> wifstream; 847a984708SDavid Chisnalltypedef basic_ofstream<wchar_t> wofstream; 857a984708SDavid Chisnalltypedef basic_fstream<wchar_t> wfstream; 867a984708SDavid Chisnall 877a984708SDavid Chisnalltemplate <class state> class fpos; 887a984708SDavid Chisnalltypedef fpos<char_traits<char>::state_type> streampos; 897a984708SDavid Chisnalltypedef fpos<char_traits<wchar_t>::state_type> wstreampos; 907a984708SDavid Chisnall 917a984708SDavid Chisnall} // std 927a984708SDavid Chisnall 937a984708SDavid Chisnall*/ 947a984708SDavid Chisnall 957a984708SDavid Chisnall#include <__config> 967a984708SDavid Chisnall#include <wchar.h> // for mbstate_t 977a984708SDavid Chisnall 987a984708SDavid Chisnall#if !defined(_LIBCPP_HAS_NO_PRAGMA_SYSTEM_HEADER) 997a984708SDavid Chisnall#pragma GCC system_header 1007a984708SDavid Chisnall#endif 1017a984708SDavid Chisnall 1027a984708SDavid Chisnall_LIBCPP_BEGIN_NAMESPACE_STD 1037a984708SDavid Chisnall 1041bf9f7c1SDimitry Andricclass _LIBCPP_TYPE_VIS ios_base; 1057a984708SDavid Chisnall 106aed8d94eSDimitry Andrictemplate<class _CharT> struct _LIBCPP_TEMPLATE_VIS char_traits; 107*b5893f02SDimitry Andrictemplate<> struct char_traits<char>; 108*b5893f02SDimitry Andric#ifndef _LIBCPP_NO_HAS_CHAR8_T 109*b5893f02SDimitry Andrictemplate<> struct char_traits<char8_t>; 110*b5893f02SDimitry Andric#endif 111*b5893f02SDimitry Andrictemplate<> struct char_traits<char16_t>; 112*b5893f02SDimitry Andrictemplate<> struct char_traits<char32_t>; 113*b5893f02SDimitry Andrictemplate<> struct char_traits<wchar_t>; 114*b5893f02SDimitry Andric 115aed8d94eSDimitry Andrictemplate<class _Tp> class _LIBCPP_TEMPLATE_VIS allocator; 1167a984708SDavid Chisnall 1177a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT> > 118aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_ios; 1197a984708SDavid Chisnall 1207a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT> > 121aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_streambuf; 1227a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT> > 123aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_istream; 1247a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT> > 125aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_ostream; 1267a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT> > 127aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_iostream; 1287a984708SDavid Chisnall 1297a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT>, 1307a984708SDavid Chisnall class _Allocator = allocator<_CharT> > 131aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_stringbuf; 1327a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT>, 1337a984708SDavid Chisnall class _Allocator = allocator<_CharT> > 134aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_istringstream; 1357a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT>, 1367a984708SDavid Chisnall class _Allocator = allocator<_CharT> > 137aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_ostringstream; 1387a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT>, 1397a984708SDavid Chisnall class _Allocator = allocator<_CharT> > 140aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_stringstream; 1417a984708SDavid Chisnall 1427a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT> > 143aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_filebuf; 1447a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT> > 145aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_ifstream; 1467a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT> > 147aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_ofstream; 1487a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT> > 149aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_fstream; 1507a984708SDavid Chisnall 1517a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT> > 152aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS istreambuf_iterator; 1537a984708SDavid Chisnalltemplate <class _CharT, class _Traits = char_traits<_CharT> > 154aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS ostreambuf_iterator; 1557a984708SDavid Chisnall 1567a984708SDavid Chisnalltypedef basic_ios<char> ios; 1577a984708SDavid Chisnalltypedef basic_ios<wchar_t> wios; 1587a984708SDavid Chisnall 1597a984708SDavid Chisnalltypedef basic_streambuf<char> streambuf; 1607a984708SDavid Chisnalltypedef basic_istream<char> istream; 1617a984708SDavid Chisnalltypedef basic_ostream<char> ostream; 1627a984708SDavid Chisnalltypedef basic_iostream<char> iostream; 1637a984708SDavid Chisnall 1647a984708SDavid Chisnalltypedef basic_stringbuf<char> stringbuf; 1657a984708SDavid Chisnalltypedef basic_istringstream<char> istringstream; 1667a984708SDavid Chisnalltypedef basic_ostringstream<char> ostringstream; 1677a984708SDavid Chisnalltypedef basic_stringstream<char> stringstream; 1687a984708SDavid Chisnall 1697a984708SDavid Chisnalltypedef basic_filebuf<char> filebuf; 1707a984708SDavid Chisnalltypedef basic_ifstream<char> ifstream; 1717a984708SDavid Chisnalltypedef basic_ofstream<char> ofstream; 1727a984708SDavid Chisnalltypedef basic_fstream<char> fstream; 1737a984708SDavid Chisnall 1747a984708SDavid Chisnalltypedef basic_streambuf<wchar_t> wstreambuf; 1757a984708SDavid Chisnalltypedef basic_istream<wchar_t> wistream; 1767a984708SDavid Chisnalltypedef basic_ostream<wchar_t> wostream; 1777a984708SDavid Chisnalltypedef basic_iostream<wchar_t> wiostream; 1787a984708SDavid Chisnall 1797a984708SDavid Chisnalltypedef basic_stringbuf<wchar_t> wstringbuf; 1807a984708SDavid Chisnalltypedef basic_istringstream<wchar_t> wistringstream; 1817a984708SDavid Chisnalltypedef basic_ostringstream<wchar_t> wostringstream; 1827a984708SDavid Chisnalltypedef basic_stringstream<wchar_t> wstringstream; 1837a984708SDavid Chisnall 1847a984708SDavid Chisnalltypedef basic_filebuf<wchar_t> wfilebuf; 1857a984708SDavid Chisnalltypedef basic_ifstream<wchar_t> wifstream; 1867a984708SDavid Chisnalltypedef basic_ofstream<wchar_t> wofstream; 1877a984708SDavid Chisnalltypedef basic_fstream<wchar_t> wfstream; 1887a984708SDavid Chisnall 189aed8d94eSDimitry Andrictemplate <class _State> class _LIBCPP_TEMPLATE_VIS fpos; 1907a984708SDavid Chisnalltypedef fpos<mbstate_t> streampos; 1917a984708SDavid Chisnalltypedef fpos<mbstate_t> wstreampos; 192*b5893f02SDimitry Andric#ifndef _LIBCPP_NO_HAS_CHAR8_T 193*b5893f02SDimitry Andrictypedef fpos<mbstate_t> u8streampos; 194*b5893f02SDimitry Andric#endif 1957a984708SDavid Chisnall#ifndef _LIBCPP_HAS_NO_UNICODE_CHARS 1967a984708SDavid Chisnalltypedef fpos<mbstate_t> u16streampos; 1977a984708SDavid Chisnalltypedef fpos<mbstate_t> u32streampos; 1987a984708SDavid Chisnall#endif // _LIBCPP_HAS_NO_UNICODE_CHARS 1997a984708SDavid Chisnall 200854fa44bSDimitry Andric#if defined(_NEWLIB_VERSION) 201854fa44bSDimitry Andric// On newlib, off_t is 'long int' 202854fa44bSDimitry Andrictypedef long int streamoff; // for char_traits in <string> 203854fa44bSDimitry Andric#else 2047a984708SDavid Chisnalltypedef long long streamoff; // for char_traits in <string> 205854fa44bSDimitry Andric#endif 2067a984708SDavid Chisnall 2077a984708SDavid Chisnalltemplate <class _CharT, // for <stdexcept> 2087a984708SDavid Chisnall class _Traits = char_traits<_CharT>, 2097a984708SDavid Chisnall class _Allocator = allocator<_CharT> > 210aed8d94eSDimitry Andric class _LIBCPP_TEMPLATE_VIS basic_string; 2117a984708SDavid Chisnalltypedef basic_string<char, char_traits<char>, allocator<char> > string; 2127a984708SDavid Chisnalltypedef basic_string<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstring; 2137a984708SDavid Chisnall 2147c82a1ecSDimitry Andric 2157c82a1ecSDimitry Andric// Include other forward declarations here 2167c82a1ecSDimitry Andrictemplate <class _Tp, class _Alloc = allocator<_Tp> > 217aed8d94eSDimitry Andricclass _LIBCPP_TEMPLATE_VIS vector; 2187c82a1ecSDimitry Andric 2197a984708SDavid Chisnall_LIBCPP_END_NAMESPACE_STD 2207a984708SDavid Chisnall 2217a984708SDavid Chisnall#endif // _LIBCPP_IOSFWD 222