N1621=04-0061
                                                              Jens Maurer
                                                              24 Mar 2004

Resolution to TR issue 4.37

Replace in section 5.1.1 [tr.rand.req] before table 5.2:

In table 5.2, [...], os is convertible to an lvalue of type std::ostream, and is is convertible to an lvalue of type std::istream.

by

In table 5.2, [...], os is an lvalue of the type of some class template specialization basic_ostream<charT, traits>, and is is an lvalue of the type of some class template specialization basic_istream<charT, traits>, where charT and traits are constrained according to [lib.strings] and [lib.input.output].

Replace in section 5.1.1 [tr.rand.req] in table 5.2, in the row for os << x, the return type

std::ostream&
by
reference to the type of os
Also, replace in the row for is >> v, the return type
std::istream&
by
reference to the type of is
and the pre/post-condition
sets the state v(i) of v as determined by reading its textual representation from is. post: The is.fmtflags are unchanged.
by
sets the state v(i) of v as determined by reading its textual representation from is. pre: The textual representation was previously written using a os whose imbued locale and whose type's template specialization arguments charT and traits were the same than those of is, respectively. post: The is.fmtflags are unchanged.

In section 5.1.1 [tr.rand.req], add at the end of the paragraph preceding table 5.3

os is convertible to an lvalue of the type of some class template specialization basic_ostream<charT, traits>, and is is convertible to an lvalue of the type of some class template specialization basic_istream<charT, traits>, where charT and traits are constrained according to [lib.strings] and [lib.input.output].

Replace in section 5.1.1 [tr.rand.req] in table 5.3, in the row for os << x, the return type

std::ostream&
by
reference to the type of os
Also, replace in the row for is >> v, the return type
std::istream&
by
reference to the type of is
and the pre/post-condition
restores the parameters and additional internal data of the distribution u. pre: is provides a textual representation that was previously written by operator<<. post: The is.fmtflags are unchanged.
by
restores the parameters and additional internal data of the distribution u. pre: is provides a textual representation that was previously written using a os whose imbued locale and whose type's template specialization arguments charT and traits were the same than those of is, respectively. post: The is.fmtflags are unchanged.