williamr@4: #ifndef _STLP_INTERNAL_IOSFWD williamr@4: #define _STLP_INTERNAL_IOSFWD williamr@2: williamr@4: #if defined (__sgi) && !defined (__GNUC__) && !defined (_STANDARD_C_PLUS_PLUS) williamr@4: # error This header file requires the -LANG:std option williamr@2: #endif williamr@2: williamr@2: // This file provides forward declarations of the most important I/O williamr@2: // classes. Note that almost all of those classes are class templates, williamr@4: // with default template arguments. According to the C++ standard, williamr@2: // if a class template is declared more than once in the same scope williamr@4: // then only one of those declarations may have default arguments. williamr@2: williamr@2: // contains the same declarations as other headers, and including williamr@2: // both and (say) is permitted. This means that only williamr@2: // one header may contain those default template arguments. williamr@2: williamr@2: // In this implementation, the declarations in contain default williamr@2: // template arguments. All of the other I/O headers include . williamr@2: williamr@2: #ifndef _STLP_CHAR_TRAITS_H williamr@4: # include williamr@2: #endif williamr@2: williamr@2: _STLP_BEGIN_NAMESPACE williamr@2: williamr@4: class ios_base; williamr@2: williamr@4: template ) > williamr@2: class basic_ios; williamr@2: williamr@4: template ) > williamr@2: class basic_streambuf; williamr@2: williamr@4: template ) > williamr@2: class basic_istream; williamr@2: williamr@4: template ) > williamr@2: class basic_ostream; williamr@2: williamr@4: template ) > williamr@2: class basic_iostream; williamr@2: williamr@4: template ), williamr@4: _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > williamr@2: class basic_stringbuf; williamr@2: williamr@4: template ), williamr@4: _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > williamr@2: class basic_istringstream; williamr@2: williamr@4: template ), williamr@4: _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > williamr@2: class basic_ostringstream; williamr@2: williamr@4: template ), williamr@4: _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > williamr@2: class basic_stringstream; williamr@2: williamr@4: template ) > williamr@2: class basic_filebuf; williamr@2: williamr@4: template ) > williamr@2: class basic_ifstream; williamr@2: williamr@4: template ) > williamr@2: class basic_ofstream; williamr@2: williamr@4: template ) > williamr@2: class basic_fstream; williamr@2: williamr@4: template ) > williamr@2: class istreambuf_iterator; williamr@2: williamr@4: template ) > williamr@2: class ostreambuf_iterator; williamr@2: williamr@2: typedef basic_ios > ios; williamr@2: williamr@4: #if !defined (_STLP_NO_WCHAR_T) williamr@2: typedef basic_ios > wios; williamr@4: #endif williamr@2: williamr@2: // Forward declaration of class locale, and of the most important facets. williamr@2: class locale; williamr@4: #if defined (_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS) williamr@2: template williamr@2: struct _Use_facet { williamr@2: const locale& __loc; williamr@2: _Use_facet(const locale& __p_loc) : __loc(__p_loc) {} williamr@2: inline const _Facet& operator *() const; williamr@2: }; williamr@4: # define use_facet *_Use_facet williamr@4: #else williamr@2: template inline const _Facet& use_facet(const locale&); williamr@4: #endif williamr@2: williamr@2: template class ctype; williamr@2: template class ctype_byname; williamr@2: template class collate; williamr@2: template class collate_byname; williamr@2: williamr@4: _STLP_TEMPLATE_NULL class ctype; williamr@4: _STLP_TEMPLATE_NULL class ctype_byname; williamr@4: _STLP_TEMPLATE_NULL class collate; williamr@4: _STLP_TEMPLATE_NULL class collate_byname; williamr@2: williamr@4: #if !defined (_STLP_NO_WCHAR_T) williamr@4: _STLP_TEMPLATE_NULL class ctype; williamr@4: _STLP_TEMPLATE_NULL class ctype_byname; williamr@4: _STLP_TEMPLATE_NULL class collate; williamr@4: _STLP_TEMPLATE_NULL class collate_byname; williamr@4: #endif williamr@2: williamr@4: #if !(defined (__SUNPRO_CC) && __SUNPRO_CC < 0x500 ) williamr@2: // Typedefs for ordinary (narrow-character) streams. williamr@4: //_STLP_TEMPLATE_NULL class basic_streambuf >; williamr@4: #endif williamr@2: williamr@4: typedef basic_istream > istream; williamr@4: typedef basic_ostream > ostream; williamr@4: typedef basic_iostream > iostream; williamr@2: typedef basic_streambuf > streambuf; williamr@2: williamr@2: typedef basic_stringbuf, allocator > stringbuf; williamr@2: typedef basic_istringstream, allocator > istringstream; williamr@2: typedef basic_ostringstream, allocator > ostringstream; williamr@2: typedef basic_stringstream, allocator > stringstream; williamr@2: williamr@2: typedef basic_filebuf > filebuf; williamr@2: typedef basic_ifstream > ifstream; williamr@2: typedef basic_ofstream > ofstream; williamr@2: typedef basic_fstream > fstream; williamr@2: williamr@4: #if !defined (_STLP_NO_WCHAR_T) williamr@2: // Typedefs for wide-character streams. williamr@2: typedef basic_streambuf > wstreambuf; williamr@2: typedef basic_istream > wistream; williamr@2: typedef basic_ostream > wostream; williamr@2: typedef basic_iostream > wiostream; williamr@2: williamr@2: typedef basic_stringbuf, allocator > wstringbuf; williamr@2: typedef basic_istringstream, allocator > wistringstream; williamr@2: typedef basic_ostringstream, allocator > wostringstream; williamr@2: typedef basic_stringstream, allocator > wstringstream; williamr@2: williamr@2: typedef basic_filebuf > wfilebuf; williamr@2: typedef basic_ifstream > wifstream; williamr@2: typedef basic_ofstream > wofstream; williamr@2: typedef basic_fstream > wfstream; williamr@4: #endif williamr@2: williamr@2: _STLP_END_NAMESPACE williamr@2: williamr@2: #endif williamr@2: williamr@2: // Local Variables: williamr@2: // mode:C++ williamr@2: // End: