[iostream.forward] (original) (raw)
31.3.1 Header synopsis [iosfwd.syn]
Default template arguments are described as appearing both inand in the synopsis of other headers but it is well-formed to include bothand one or more of the other headers.258
31.3.2 Overview [iostream.forward.overview]
The class template specializationbasic_ios<charT, traits>serves as a virtual base class for the class templatesbasic_istream,basic_ostream, and class templates derived from them.
basic_iostreamis a class template derived from bothbasic_istream<charT, traits>andbasic_ostream<charT, traits>.
The class template specializationbasic_streambuf<charT, traits>serves as a base class for class templatesbasic_stringbuf,basic_filebuf, andbasic_syncbuf.
The class template specializationbasic_istream<charT, traits>serves as a base class for class templatesbasic_istringstreamandbasic_ifstream.
The class template specializationbasic_ostream<charT, traits>serves as a base class for class templatesbasic_ostringstream,basic_ofstream, andbasic_osyncstream.
The class template specializationbasic_iostream<charT, traits>serves as a base class for class templatesbasic_stringstreamandbasic_fstream.
[Note 1:
For each of the class templates above, the program is ill-formed iftraits::char_typeis not the same type ascharT ([char.traits]).
— _end note_]
Other typedef-names define instances of class templates specialized forcharorwchar_ttypes.
Specializations of the class templatefposare used for specifying file position information.
[Example 1:
The typesstreamposandwstreamposare used for positioning streams specialized oncharandwchar_trespectively.
— _end example_]
[Note 2:
This synopsis suggests a circularity betweenstreamposandchar_traits<char>.
An implementation can avoid this circularity by substituting equivalent types.
— _end note_]