xref: /freebsd-12.1/contrib/libc++/include/iosfwd (revision b5893f02)
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