<html>
<head>
<title>Resolution to TR issue 4.37</title>
<body>
<pre>
                                                              N1621=04-0061
                                                              Jens Maurer
                                                              24 Mar 2004
</pre>

<h1>Resolution to TR issue 4.37</h1>

<p>
<p />
Replace in section 5.1.1 [tr.rand.req] before table 5.2:
<blockquote>
In table 5.2, [...], <code>os</code> is convertible to an lvalue of
type <code>std::ostream</code>, and <code>is</code> is convertible to
an lvalue of type <code>std::istream</code>.
</blockquote>
<p />
by
<p />
<blockquote>
In table 5.2, [...], <code>os</code> is an lvalue of
the type of some class template specialization <code>basic_ostream&lt;charT,
traits&gt;</code>, and <code>is</code> is an lvalue of the
type of some class template specialization <code>basic_istream&lt;charT,
traits&gt;</code>, where <code>charT</code> and <code>traits</code>
are constrained according to [lib.strings] and [lib.input.output].
</blockquote>
<p />
Replace in section 5.1.1 [tr.rand.req] in table 5.2, in the row for
<code>os &lt;&lt; x</code>, the return type
<blockquote>
<code>std::ostream&amp;</code>
</blockquote>
by
<blockquote>
reference to the type of <code>os</code>
</blockquote>
Also, replace in the row for <code>is &gt;&gt; v</code>, the return type
<blockquote>
<code>std::istream&amp;</code>
</blockquote>
by
<blockquote>
reference to the type of <code>is</code>
</blockquote>
and the pre/post-condition
<blockquote>
sets the state v(i)</code> of <code>v</code> as determined by reading
its textual representation from <code>is</code>. post: The
<code>is</code>.<em>fmtflags</em> are unchanged.
</blockquote>
by
<blockquote>
sets the state <code>v(i)</code> of <code>v</code> as determined by
reading its textual representation from <code>is</code>.  pre: The
textual representation was previously written using a <code>os</code>
whose imbued locale and whose type's template specialization arguments
<code>charT</code> and <code>traits</code> were the same than those of
<code>is</code>, respectively.  post: The
<code>is</code>.<em>fmtflags</em> are unchanged.
</blockquote>
<p />
In section 5.1.1 [tr.rand.req], add at the end of the paragraph
preceding table 5.3
<blockquote>
<code>os</code> is convertible to an lvalue of
the type of some class template specialization <code>basic_ostream&lt;charT,
traits&gt;</code>, and <code>is</code> is convertible to an lvalue of the
type of some class template specialization <code>basic_istream&lt;charT,
traits&gt;</code>, where <code>charT</code> and <code>traits</code>
are constrained according to [lib.strings] and [lib.input.output].
</blockquote>
<p />
Replace in section 5.1.1 [tr.rand.req] in table 5.3, in the row for
<code>os &lt;&lt; x</code>, the return type
<blockquote>
<code>std::ostream&amp;</code>
</blockquote>
by
<blockquote>
reference to the type of <code>os</code>
</blockquote>
Also, replace in the row for <code>is &gt;&gt; v</code>, the return type
<blockquote>
<code>std::istream&amp;</code>
</blockquote>
by
<blockquote>
reference to the type of <code>is</code>
</blockquote>
and the pre/post-condition
<blockquote>
restores the parameters and additional internal data of the
distribution </code>u</code>. pre: <code>is</code> provides a textual
representation that was previously written by
<code>operator&lt;&lt;</code>. post: The
<code>is</code>.<em>fmtflags</em> are unchanged.
</blockquote>
by
<blockquote>
restores the parameters and additional internal data of the
distribution </code>u</code>. pre: <code>is</code> provides a textual
representation that was previously written using a <code>os</code>
whose imbued locale and whose type's template specialization arguments
<code>charT</code> and <code>traits</code> were the same than those of
<code>is</code>, respectively.  post: The
<code>is</code>.<em>fmtflags</em> are unchanged.
</blockquote>
</body>
</html>
