This page is a snapshot from the LWG issues list, see the Library Active Issues List for more information and the meaning of NAD status.

### 785. [tr1] Random Number Requirements in TR1

Section: 5.1.4.5 [tr1::tr.rand.eng.disc], 5.1.4.6 [tr1::tr.rand.eng.xor] Status: NAD Submitter: John Maddock Opened: 2008-01-15 Last modified: 2016-02-01

Priority: Not Prioritized

View all issues with NAD status.

Discussion:

Table 16 of TR1 requires that all Pseudo Random Number generators have a

>     seed(integer-type s)

member function that is equivalent to:

>     mygen = Generator(s)

But the generators `xor_combine` and `discard_block` have no such seed member, only the

>     template <class Gen>
>     seed(Gen&);

member, which will not accept an integer literal as an argument: something that appears to violate the intent of Table 16.

So... is this a bug in TR1?

This is a real issue BTW, since the Boost implementation does adhere to the requirements of Table 16, while at least one commercial implementation does not and follows a strict adherence to sections 5.1.4.5 and 5.1.4.6 instead.

[ Jens adds: ]

> Both engines do have the necessary constructor, therefore the omission of the `seed()` member functions appears to be an oversight.

[ Post Summit Daniel adds: ]

> Recommend NAD: `xor_combine` does no longer exist and `discard_block[_engine]` has now the required seed overload accepting a `result_type`, which shall be an unsigned integral type.

[ Batavia (2009-05): ]

> Move to NAD as recommended.

Proposed resolution:

NAD Recommended.