Default template arguments are described as appearing both in
<iosfwd>
and in the synopsis of other headers
but it is well-formed to include both
<iosfwd>
and one or more of the other headers.287
It is the implementation's
responsibility to implement headers so
that including <iosfwd>
and other headers does not violate the rules about
multiple occurrences of default arguments.
The
class template specialization
basic_ios<charT, traits>
serves as a virtual base class for the
class templates
basic_istream,
basic_ostream,
and
class templates
derived from them.
basic_iostream
is a class
template
derived from both
basic_istream<charT, traits>
and
basic_ostream<charT, traits>.
The
class template specialization
basic_streambuf<charT, traits>
serves as a base class for class templates
basic_stringbuf,
basic_filebuf,
and
basic_syncbuf.
The
class template specialization
basic_ostream<charT, traits>
serves as a base class for class templates
basic_ostringstream,
basic_ofstream,
and
basic_osyncstream.