111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _STLP_INTERNAL_IOSFWD 211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#define _STLP_INTERNAL_IOSFWD 311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (__sgi) && !defined (__GNUC__) && !defined (_STANDARD_C_PLUS_PLUS) 511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# error This header file requires the -LANG:std option 611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// This file provides forward declarations of the most important I/O 911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// classes. Note that almost all of those classes are class templates, 1011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// with default template arguments. According to the C++ standard, 1111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// if a class template is declared more than once in the same scope 1211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// then only one of those declarations may have default arguments. 1311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// <iosfwd> contains the same declarations as other headers, and including 1511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// both <iosfwd> and (say) <iostream> is permitted. This means that only 1611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// one header may contain those default template arguments. 1711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 1811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// In this implementation, the declarations in <iosfwd> contain default 1911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// template arguments. All of the other I/O headers include <iosfwd>. 2011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#ifndef _STLP_CHAR_TRAITS_H 2211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# include <stl/char_traits.h> 2311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 2411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_BEGIN_NAMESPACE 2611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass ios_base; 2811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 2911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 3011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_ios; 3111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 3311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_streambuf; 3411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 3611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_istream; 3711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 3811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 3911cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_ostream; 4011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 4211cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_iostream; 4311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM( _Traits , char_traits<_CharT>), 4511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > 4611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_stringbuf; 4711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 4811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>), 4911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > 5011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_istringstream; 5111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>), 5311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > 5411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_ostringstream; 5511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 5611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>), 5711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _STLP_DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) > 5811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_stringstream; 5911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 6111cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_filebuf; 6211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 6411cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_ifstream; 6511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 6711cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_ofstream; 6811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 6911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 7011cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass basic_fstream; 7111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 7311cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass istreambuf_iterator; 7411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT, _STLP_DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) > 7611cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass ostreambuf_iterator; 7711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 7811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_ios<char, char_traits<char> > ios; 7911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined (_STLP_NO_WCHAR_T) 8111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_ios<wchar_t, char_traits<wchar_t> > wios; 8211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 8311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 8411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Forward declaration of class locale, and of the most important facets. 8511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertclass locale; 8611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _Facet> 8711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if defined (_STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS) 8811cd02dfb91661c65134cac258cf5924270e9d2Dan Albertstruct _Use_facet { 8911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert const locale& __loc; 9011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert _Use_facet(const locale& __p_loc) : __loc(__p_loc) {} 9111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert inline const _Facet& operator *() const; 9211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert}; 9311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert# define use_facet *_Use_facet 9411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#else 9511cd02dfb91661c65134cac258cf5924270e9d2Dan Albertinline const _Facet& use_facet(const locale&); 9611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 9711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 9811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT> class ctype; 9911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT> class ctype_byname; 10011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT> class collate; 10111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttemplate <class _CharT> class collate_byname; 10211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_TEMPLATE_NULL class ctype<char>; 10411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_TEMPLATE_NULL class ctype_byname<char>; 10511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_TEMPLATE_NULL class collate<char>; 10611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_TEMPLATE_NULL class collate_byname<char>; 10711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 10811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined (_STLP_NO_WCHAR_T) 10911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_TEMPLATE_NULL class ctype<wchar_t>; 11011cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_TEMPLATE_NULL class ctype_byname<wchar_t>; 11111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_TEMPLATE_NULL class collate<wchar_t>; 11211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_TEMPLATE_NULL class collate_byname<wchar_t>; 11311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 11411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 11511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !(defined (__SUNPRO_CC) && __SUNPRO_CC < 0x500 ) 11611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Typedefs for ordinary (narrow-character) streams. 11711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert//_STLP_TEMPLATE_NULL class basic_streambuf<char, char_traits<char> >; 11811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 11911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_istream<char, char_traits<char> > istream; 12111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_ostream<char, char_traits<char> > ostream; 12211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_iostream<char, char_traits<char> > iostream; 12311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_streambuf<char,char_traits<char> > streambuf; 12411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 12511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_stringbuf<char, char_traits<char>, allocator<char> > stringbuf; 12611cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_istringstream<char, char_traits<char>, allocator<char> > istringstream; 12711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_ostringstream<char, char_traits<char>, allocator<char> > ostringstream; 12811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_stringstream<char, char_traits<char>, allocator<char> > stringstream; 12911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_filebuf<char, char_traits<char> > filebuf; 13111cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_ifstream<char, char_traits<char> > ifstream; 13211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_ofstream<char, char_traits<char> > ofstream; 13311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_fstream<char, char_traits<char> > fstream; 13411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 13511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#if !defined (_STLP_NO_WCHAR_T) 13611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Typedefs for wide-character streams. 13711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_streambuf<wchar_t, char_traits<wchar_t> > wstreambuf; 13811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_istream<wchar_t, char_traits<wchar_t> > wistream; 13911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_ostream<wchar_t, char_traits<wchar_t> > wostream; 14011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_iostream<wchar_t, char_traits<wchar_t> > wiostream; 14111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14211cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_stringbuf<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstringbuf; 14311cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_istringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wistringstream; 14411cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_ostringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wostringstream; 14511cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_stringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wstringstream; 14611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 14711cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_filebuf<wchar_t, char_traits<wchar_t> > wfilebuf; 14811cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_ifstream<wchar_t, char_traits<wchar_t> > wifstream; 14911cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_ofstream<wchar_t, char_traits<wchar_t> > wofstream; 15011cd02dfb91661c65134cac258cf5924270e9d2Dan Alberttypedef basic_fstream<wchar_t, char_traits<wchar_t> > wfstream; 15111cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 15211cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15311cd02dfb91661c65134cac258cf5924270e9d2Dan Albert_STLP_END_NAMESPACE 15411cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15511cd02dfb91661c65134cac258cf5924270e9d2Dan Albert#endif 15611cd02dfb91661c65134cac258cf5924270e9d2Dan Albert 15711cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// Local Variables: 15811cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// mode:C++ 15911cd02dfb91661c65134cac258cf5924270e9d2Dan Albert// End: 160