<html>
<head>
<title>Specify header dependency for &lt;iostream&gt;</title>
<style>
p {text-align:justify}
li {text-align:justify}
blockquote.note
{
    background-color:#E0E0E0;
    padding-left: 15px;
    padding-right: 15px;
    padding-top: 1px;
    padding-bottom: 1px;
}
ins {background-color:#FFFFA0}
del {background-color:#FFFFA0}
    <!--
    .added { color:darkcyan; text-decoration:underline; }
    .removed { color:red; text-decoration:line-through; }
    .clause { padding-left:5em; }
    .hlabel { padding-right:1em; text-align:right; }
    -->
</style>
</head>

<body>

<address align=right>
Document number: N2259=07-0119<br>
<br>
<a href="mailto:howard.hinnant@gmail.com">Howard E. Hinnant</a><br>

2007-04-19
</address>
<hr>
<h1 align=center>Specify header dependency for &lt;iostream&gt;</h1>

<p>
This paper splits the first part of <a href="http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2007/n2186.html">N2186</a>
for the purpose of creating a single, votable item.  The original paper contained several independent
proposals.
</p>

<h3>Proposed text</h3>
<p>
  In [iostream.objects]:
</p>
<blockquote>
  <p>
  <b>Header <tt>&lt;iostream&gt;</tt> synopsis</b>
  <pre>
    <span class="added">#include &lt;ios&gt;</span>
    <span class="added">#include &lt;streambuf&gt;</span>
    <span class="added">#include &lt;istream&gt;</span>
    <span class="added">#include &lt;ostream&gt;</span>

    namespace std {
      extern istream cin;
      extern ostream cout;
      extern ostream cerr;
      extern ostream clog;
      extern wistream wcin;
      extern wostream wcout;
      extern wostream wcerr;
      extern wostream wclog;
        }
  </pre>
  </p>
  <p>
    The header <tt>&lt;iostream&gt;</tt> declares objects that associate
    objects with the standard C streams provided for by the functions
    declared in <tt>&lt;cstdio&gt;</tt><span class="added">, and includes
    all of the headers neccesary to use these objects</span>.
  </p>
</blockquote>


</body>
</html>
