1#ifndef _STLP_INTERNAL_IOSFWD 2#define _STLP_INTERNAL_IOSFWD 3 4#if defined (__sgi) && !defined (__GNUC__) && !defined (_STANDARD_C_PLUS_PLUS) 5# error This header file requires the -LANG:std option 6#endif 7 8// This file provides forward declarations of the most important I/O 9// classes. Note that almost all of those classes are class templates, 10// with default template arguments. According to the C++ standard, 11// if a class template is declared more than once in the same scope 12// then only one of those declarations may have default arguments. 13 14// <iosfwd> contains the same declarations as other headers, and including 15// both <iosfwd> and (say) <iostream> is permitted. This means that only 16// one header may contain those default template arguments. 17 18// In this implementation, the declarations in <iosfwd> contain default 19// template arguments. All of the other I/O headers include <iosfwd>. 20 21#ifndef _STLP_CHAR_TRAITS_H 22# include <stl/char_traits.h> 23#endif 24 25_STLP_BEGIN_NAMESPACE 26 27class ios_base; 28 29template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 30class basic_ios; 31 32template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 33class basic_streambuf; 34 35template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 36class basic_istream; 37 38template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 39class basic_ostream; 40 41template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 42class basic_iostream; 43 44template <class _CharT, _STLP_DFL_TMPL_PARAM( _Traits , char_traits<_CharT>), 45 _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > 46class basic_stringbuf; 47 48template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>), 49 _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > 50class basic_istringstream; 51 52template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>), 53 _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > 54class basic_ostringstream; 55 56template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>), 57 _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > 58class basic_stringstream; 59 60template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 61class basic_filebuf; 62 63template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 64class basic_ifstream; 65 66template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 67class basic_ofstream; 68 69template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 70class basic_fstream; 71 72template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 73class istreambuf_iterator; 74 75template <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 76class ostreambuf_iterator; 77 78typedef basic_ios<char, char_traits<char> > ios; 79 80#if !defined (_STLP_NO_WCHAR_T) 81typedef basic_ios<wchar_t, char_traits<wchar_t> > wios; 82#endif 83 84// Forward declaration of class locale, and of the most important facets. 85class locale; 86template <class _Facet> 87#if defined (_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS) 88struct _Use_facet { 89 const locale& __loc; 90 _Use_facet(const locale& __p_loc) : __loc(__p_loc) {} 91 inline const _Facet& operator *() const; 92}; 93# define use_facet *_Use_facet 94#else 95inline const _Facet& use_facet(const locale&); 96#endif 97 98template <class _CharT> class ctype; 99template <class _CharT> class ctype_byname; 100template <class _CharT> class collate; 101template <class _CharT> class collate_byname; 102 103_STLP_TEMPLATE_NULL class ctype<char>; 104_STLP_TEMPLATE_NULL class ctype_byname<char>; 105_STLP_TEMPLATE_NULL class collate<char>; 106_STLP_TEMPLATE_NULL class collate_byname<char>; 107 108#if !defined (_STLP_NO_WCHAR_T) 109_STLP_TEMPLATE_NULL class ctype<wchar_t>; 110_STLP_TEMPLATE_NULL class ctype_byname<wchar_t>; 111_STLP_TEMPLATE_NULL class collate<wchar_t>; 112_STLP_TEMPLATE_NULL class collate_byname<wchar_t>; 113#endif 114 115#if !(defined (__SUNPRO_CC) && __SUNPRO_CC < 0x500 ) 116// Typedefs for ordinary (narrow-character) streams. 117//_STLP_TEMPLATE_NULL class basic_streambuf<char, char_traits<char> >; 118#endif 119 120typedef basic_istream<char, char_traits<char> > istream; 121typedef basic_ostream<char, char_traits<char> > ostream; 122typedef basic_iostream<char, char_traits<char> > iostream; 123typedef basic_streambuf<char,char_traits<char> > streambuf; 124 125typedef basic_stringbuf<char, char_traits<char>, allocator<char> > stringbuf; 126typedef basic_istringstream<char, char_traits<char>, allocator<char> > istringstream; 127typedef basic_ostringstream<char, char_traits<char>, allocator<char> > ostringstream; 128typedef basic_stringstream<char, char_traits<char>, allocator<char> > stringstream; 129 130typedef basic_filebuf<char, char_traits<char> > filebuf; 131typedef basic_ifstream<char, char_traits<char> > ifstream; 132typedef basic_ofstream<char, char_traits<char> > ofstream; 133typedef basic_fstream<char, char_traits<char> > fstream; 134 135#if !defined (_STLP_NO_WCHAR_T) 136// Typedefs for wide-character streams. 137typedef basic_streambuf<wchar_t, char_traits<wchar_t> > wstreambuf; 138typedef basic_istream<wchar_t, char_traits<wchar_t> > wistream; 139typedef basic_ostream<wchar_t, char_traits<wchar_t> > wostream; 140typedef basic_iostream<wchar_t, char_traits<wchar_t> > wiostream; 141 142typedef basic_stringbuf<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstringbuf; 143typedef basic_istringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wistringstream; 144typedef basic_ostringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wostringstream; 145typedef basic_stringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstringstream; 146 147typedef basic_filebuf<wchar_t, char_traits<wchar_t> > wfilebuf; 148typedef basic_ifstream<wchar_t, char_traits<wchar_t> > wifstream; 149typedef basic_ofstream<wchar_t, char_traits<wchar_t> > wofstream; 150typedef basic_fstream<wchar_t, char_traits<wchar_t> > wfstream; 151#endif 152 153_STLP_END_NAMESPACE 154 155#endif 156 157// Local Variables: 158// mode:C++ 159// End: 160