std_iosfwd.h revision 97403
197403Sobrien// Forwarding declarations -*- C++ -*-
297403Sobrien
397403Sobrien// Copyright (C) 1997, 1998, 1999, 2001, 2002 Free Software Foundation, Inc.
497403Sobrien//
597403Sobrien// This file is part of the GNU ISO C++ Library.  This library is free
697403Sobrien// software; you can redistribute it and/or modify it under the
797403Sobrien// terms of the GNU General Public License as published by the
897403Sobrien// Free Software Foundation; either version 2, or (at your option)
997403Sobrien// any later version.
1097403Sobrien
1197403Sobrien// This library is distributed in the hope that it will be useful,
1297403Sobrien// but WITHOUT ANY WARRANTY; without even the implied warranty of
1397403Sobrien// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1497403Sobrien// GNU General Public License for more details.
1597403Sobrien
1697403Sobrien// You should have received a copy of the GNU General Public License along
1797403Sobrien// with this library; see the file COPYING.  If not, write to the Free
1897403Sobrien// Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307,
1997403Sobrien// USA.
2097403Sobrien
2197403Sobrien// As a special exception, you may use this file as part of a free software
2297403Sobrien// library without restriction.  Specifically, if other files instantiate
2397403Sobrien// templates or use macros or inline functions from this file, or you compile
2497403Sobrien// this file and link it with other files to produce an executable, this
2597403Sobrien// file does not by itself cause the resulting executable to be covered by
2697403Sobrien// the GNU General Public License.  This exception does not however
2797403Sobrien// invalidate any other reasons why the executable file might be covered by
2897403Sobrien// the GNU General Public License.
2997403Sobrien
3097403Sobrien//
3197403Sobrien// ISO C++ 14882: 27.2  Forward declarations
3297403Sobrien//
3397403Sobrien
3497403Sobrien/** @file iosfwd
3597403Sobrien *  This is a Standard C++ Library header.  You should @c #include this header
3697403Sobrien *  in your programs, rather than any of the "st[dl]_*.h" implementation files.
3797403Sobrien */
3897403Sobrien
3997403Sobrien#ifndef _CPP_IOSFWD
4097403Sobrien#define _CPP_IOSFWD 1
4197403Sobrien
4297403Sobrien#pragma GCC system_header
4397403Sobrien
4497403Sobrien#include <bits/c++config.h>
4597403Sobrien#include <bits/stringfwd.h> // For string forward declarations.
4697403Sobrien#include <bits/fpos.h>
4797403Sobrien#include <bits/functexcept.h>
4897403Sobrien
4997403Sobriennamespace std
5097403Sobrien{
5197403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT> >
5297403Sobrien    class basic_ios;
5397403Sobrien
5497403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT> >
5597403Sobrien    class basic_streambuf;
5697403Sobrien
5797403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT> >
5897403Sobrien    class basic_istream;
5997403Sobrien
6097403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT> >
6197403Sobrien    class basic_ostream;
6297403Sobrien
6397403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT> >
6497403Sobrien    class basic_iostream;
6597403Sobrien
6697403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT>,
6797403Sobrien	    typename _Alloc = allocator<_CharT> >
6897403Sobrien    class basic_stringbuf;
6997403Sobrien
7097403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT>,
7197403Sobrien	   typename _Alloc = allocator<_CharT> >
7297403Sobrien    class basic_istringstream;
7397403Sobrien
7497403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT>,
7597403Sobrien	   typename _Alloc = allocator<_CharT> >
7697403Sobrien    class basic_ostringstream;
7797403Sobrien
7897403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT>,
7997403Sobrien	   typename _Alloc = allocator<_CharT> >
8097403Sobrien    class basic_stringstream;
8197403Sobrien
8297403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT> >
8397403Sobrien    class basic_filebuf;
8497403Sobrien
8597403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT> >
8697403Sobrien    class basic_ifstream;
8797403Sobrien
8897403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT> >
8997403Sobrien    class basic_ofstream;
9097403Sobrien
9197403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT> >
9297403Sobrien    class basic_fstream;
9397403Sobrien
9497403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT> >
9597403Sobrien    class istreambuf_iterator;
9697403Sobrien
9797403Sobrien  template<typename _CharT, typename _Traits = char_traits<_CharT> >
9897403Sobrien    class ostreambuf_iterator;
9997403Sobrien
10097403Sobrien#ifdef _GLIBCPP_RESOLVE_LIB_DEFECTS
10197403Sobrien  // Not included.   (??? Apparently no LWG number?)
10297403Sobrien  class ios_base;
10397403Sobrien#endif
10497403Sobrien
10597403Sobrien  typedef basic_ios<char> 		ios;
10697403Sobrien  typedef basic_streambuf<char> 	streambuf;
10797403Sobrien  typedef basic_istream<char> 		istream;
10897403Sobrien  typedef basic_ostream<char> 		ostream;
10997403Sobrien  typedef basic_iostream<char> 		iostream;
11097403Sobrien  typedef basic_stringbuf<char> 	stringbuf;
11197403Sobrien  typedef basic_istringstream<char> 	istringstream;
11297403Sobrien  typedef basic_ostringstream<char> 	ostringstream;
11397403Sobrien  typedef basic_stringstream<char> 	stringstream;
11497403Sobrien  typedef basic_filebuf<char> 		filebuf;
11597403Sobrien  typedef basic_ifstream<char> 		ifstream;
11697403Sobrien  typedef basic_ofstream<char> 		ofstream;
11797403Sobrien  typedef basic_fstream<char> 		fstream;
11897403Sobrien
11997403Sobrien  typedef basic_ios<wchar_t> 		wios;
12097403Sobrien  typedef basic_streambuf<wchar_t> 	wstreambuf;
12197403Sobrien  typedef basic_istream<wchar_t> 	wistream;
12297403Sobrien  typedef basic_ostream<wchar_t> 	wostream;
12397403Sobrien  typedef basic_iostream<wchar_t> 	wiostream;
12497403Sobrien  typedef basic_stringbuf<wchar_t> 	wstringbuf;
12597403Sobrien  typedef basic_istringstream<wchar_t> 	wistringstream;
12697403Sobrien  typedef basic_ostringstream<wchar_t> 	wostringstream;
12797403Sobrien  typedef basic_stringstream<wchar_t> 	wstringstream;
12897403Sobrien  typedef basic_filebuf<wchar_t> 	wfilebuf;
12997403Sobrien  typedef basic_ifstream<wchar_t> 	wifstream;
13097403Sobrien  typedef basic_ofstream<wchar_t> 	wofstream;
13197403Sobrien  typedef basic_fstream<wchar_t> 	wfstream;
13297403Sobrien} // namespace std
13397403Sobrien
13497403Sobrien#endif
135