<iosfwd>

<iosfwd>

namespace std {
        // TYPE DEFINITIONS
typedef T1 streamoff;
typedef T2 streampos;
        // TEMPLATES
template<class E>
    class char_traits;
class char_traits<char>;
class char_traits<wchar_t>;
template<class E, class T = char_traits<E> >
    class basic_ios;
template<class E, class T = char_traits<E> >
    class istreambuf_iterator;
template<class E, class T = char_traits<E> >
    class ostreambuf_iterator;
template<class E, class T = char_traits<E> >
    class basic_streambuf;
template<class E, class T = char_traits<E> >
    class basic_istream;
template<class E, class T = char_traits<E> >
    class basic_ostream;
template<class E, class T = char_traits<E> >
    class basic_iostream;
template<class E, class T = char_traits<E> >
    class basic_stringbuf;
template<class E, class T = char_traits<E> >
    class basic_istringstream;
template<class E, class T = char_traits<E> >
    class basic_ostringstream;
template<class E, class T = char_traits<E> >
    class basic_stringstream;
template<class E, class T = char_traits<E> >
    class basic_filebuf;
template<class E, class T = char_traits<E> >
    class basic_ifstream;
template<class E, class T = char_traits<E> >
    class basic_ofstream;
template<class E, class T = char_traits<E> >
    class basic_fstream;
        // char TYPE DEFINITIONS
typedef basic_ios<char, char_traits<char> > ios;
typedef basic_streambuf<char, char_traits<char> > streambuf;
typedef basic_istream<char, char_traits<char> > istream;
typedef basic_ostream<char, char_traits<char> > ostream;
typedef basic_iostream<char, char_traits<char> > iostream;
typedef basic_stringbuf<char, char_traits<char> > stringbuf;
typedef basic_istringstream<char, char_traits<char> > istringstream;
typedef basic_ostringstream<char, char_traits<char> > ostringstream;
typedef basic_stringstream<char, char_traits<char> > stringstream;
typedef basic_filebuf<char, char_traits<char> > filebuf;
typedef basic_ifstream<char, char_traits<char> > ifstream;
typedef basic_ofstream<char, char_traits<char> > ofstream;
typedef basic_fstream<char, char_traits<char> > fstream;
        // wchar_t TYPE DEFINITIONS
typedef basic_ios<wchar_t, char_traits<wchar_t> > wios;
typedef basic_streambuf<wchar_t, char_traits<wchar_t> > wstreambuf;
typedef basic_istream<wchar_t, char_traits<wchar_t> > wistream;
typedef basic_ostream<wchar_t, char_traits<wchar_t> > wostream;
typedef basic_iostream<wchar_t, char_traits<wchar_t> > wiostream;
typedef basic_stringbuf<wchar_t, char_traits<wchar_t> > wstringbuf;
typedef basic_istringstream<wchar_t, char_traits<wchar_t> > wistringstream;
typedef basic_ostringstream<wchar_t, char_traits<wchar_t> > wostringstream;
typedef basic_stringstream<wchar_t, char_traits<wchar_t> > wstringstream;
typedef basic_filebuf<wchar_t, char_traits<wchar_t> > wfilebuf;
typedef basic_ifstream<wchar_t, char_traits<wchar_t> > wifstream;
typedef basic_ofstream<wchar_t, char_traits<wchar_t> > wofstream;
typedef basic_fstream<wchar_t, char_traits<wchar_t> > wfstream;
    };

Include the iostreams standard header <iosfwd> to declare forward references to several template classes used throughout iostreams. All such template classes are defined in other standard headers. You include this header explicitly only when you need one of the above declarations, but not its definition.