home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / stlpt453.zip / STLport-4.5.3 / stlport / stl / _iosfwd.h < prev    next >
C/C++ Source or Header  |  2002-01-10  |  6KB  |  160 lines

  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.  
  27. class _STLP_CLASS_DECLSPEC ios_base;
  28.  
  29. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
  30. class basic_ios;
  31.  
  32. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
  33. class basic_streambuf;
  34.  
  35. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
  36. class basic_istream;
  37.  
  38. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
  39. class basic_ostream;
  40.  
  41. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
  42. class basic_iostream;
  43.  
  44. template <class _CharT, __DFL_TMPL_PARAM( _Traits , char_traits<_CharT>),
  45.           __DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) >
  46. class basic_stringbuf;
  47.  
  48. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>),
  49.           __DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) >
  50. class basic_istringstream;
  51.  
  52. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>),
  53.           __DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) >
  54. class basic_ostringstream;
  55.  
  56. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>),
  57.           __DFL_TMPL_PARAM(_Allocator , allocator<_CharT>) >
  58. class basic_stringstream;
  59.  
  60. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
  61. class basic_filebuf;
  62.  
  63. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
  64. class basic_ifstream;
  65.  
  66. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
  67. class basic_ofstream;
  68.  
  69. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
  70. class basic_fstream;
  71.  
  72. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
  73. class istreambuf_iterator;
  74.  
  75. template <class _CharT, __DFL_TMPL_PARAM(_Traits , char_traits<_CharT>) >
  76. class ostreambuf_iterator;
  77.  
  78. typedef basic_ios<char, char_traits<char> >    ios;
  79.  
  80. # ifndef _STLP_NO_WCHAR_T
  81. typedef basic_ios<wchar_t, char_traits<wchar_t> > wios;
  82. # endif
  83.  
  84. // Forward declaration of class locale, and of the most important facets.
  85. class locale;
  86. # ifdef _STLP_NO_EXPLICIT_FUNCTION_TMPL_ARGS
  87. template <class _Facet>
  88. struct _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
  95. template <class _Facet> inline const _Facet& use_facet(const locale&);
  96. # endif
  97.  
  98. template <class _CharT> class ctype;
  99. template <class _CharT> class ctype_byname;
  100. template <class _CharT> class collate;
  101. template <class _CharT> class collate_byname;
  102.  
  103. _STLP_TEMPLATE_NULL class _STLP_CLASS_DECLSPEC ctype<char>;
  104. _STLP_TEMPLATE_NULL class _STLP_CLASS_DECLSPEC ctype_byname<char>;
  105. _STLP_TEMPLATE_NULL class _STLP_CLASS_DECLSPEC collate<char>;
  106. _STLP_TEMPLATE_NULL class _STLP_CLASS_DECLSPEC collate_byname<char>;
  107.  
  108. #  ifndef _STLP_NO_WCHAR_T
  109. _STLP_TEMPLATE_NULL class _STLP_CLASS_DECLSPEC ctype<wchar_t>;
  110. _STLP_TEMPLATE_NULL class _STLP_CLASS_DECLSPEC ctype_byname<wchar_t>;
  111. _STLP_TEMPLATE_NULL class _STLP_CLASS_DECLSPEC collate<wchar_t>;
  112. _STLP_TEMPLATE_NULL class _STLP_CLASS_DECLSPEC collate_byname<wchar_t>;
  113. #  endif
  114.  
  115. # if !(defined (__SUNPRO_CC) && __SUNPRO_CC < 0x500 ) && !defined(_STLP_WINCE)
  116. // Typedefs for ordinary (narrow-character) streams.
  117. _STLP_TEMPLATE_NULL class _STLP_CLASS_DECLSPEC basic_streambuf<char, char_traits<char> >;
  118. # endif
  119.  
  120. typedef basic_istream<char, char_traits<char> >   istream;
  121. typedef basic_ostream<char, char_traits<char> >   ostream;
  122. typedef basic_iostream<char, char_traits<char> >  iostream;
  123. typedef basic_streambuf<char,char_traits<char> > streambuf;
  124.  
  125. typedef basic_stringbuf<char, char_traits<char>, allocator<char> >     stringbuf;
  126. typedef basic_istringstream<char, char_traits<char>, allocator<char> > istringstream;
  127. typedef basic_ostringstream<char, char_traits<char>, allocator<char> > ostringstream;
  128. typedef basic_stringstream<char, char_traits<char>, allocator<char> >  stringstream;
  129.  
  130. typedef basic_filebuf<char, char_traits<char> >  filebuf;
  131. typedef basic_ifstream<char, char_traits<char> > ifstream;
  132. typedef basic_ofstream<char, char_traits<char> > ofstream;
  133. typedef basic_fstream<char, char_traits<char> >  fstream;
  134.  
  135. # ifndef _STLP_NO_WCHAR_T
  136. // Typedefs for wide-character streams.
  137. typedef basic_streambuf<wchar_t, char_traits<wchar_t> > wstreambuf;
  138. typedef basic_istream<wchar_t, char_traits<wchar_t> >   wistream;
  139. typedef basic_ostream<wchar_t, char_traits<wchar_t> >   wostream;
  140. typedef basic_iostream<wchar_t, char_traits<wchar_t> >  wiostream;
  141.  
  142. typedef basic_stringbuf<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >     wstringbuf;
  143. typedef basic_istringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wistringstream;
  144. typedef basic_ostringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> > wostringstream;
  145. typedef basic_stringstream<wchar_t, char_traits<wchar_t>, allocator<wchar_t> >  wstringstream;
  146.  
  147. typedef basic_filebuf<wchar_t, char_traits<wchar_t> >  wfilebuf;
  148. typedef basic_ifstream<wchar_t, char_traits<wchar_t> > wifstream;
  149. typedef basic_ofstream<wchar_t, char_traits<wchar_t> > wofstream;
  150. typedef 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.