678. Changes for [rand.req.eng]

Section: 29.5.3.4 [rand.req.eng] Status: CD1 Submitter: Charles Karney Opened: 2007-05-15 Last modified: 2016-01-28

Priority: Not Prioritized

View all other issues in [rand.req.eng].

View all issues with CD1 status.

Discussion:

Section 29.5.3.4 [rand.req.eng] Random number engine requirements:

This change follows naturally from the proposed change to seed_seq::randomize in 677.

In table 104 the description of X(q) contains a special treatment of the case q.size() == 0. This is undesirable for 4 reasons:

  1. It replicates the functionality provided by X().
  2. It leads to the possibility of a collision in the state provided by some other X(q) with q.size() > 0.
  3. It is inconsistent with the description of the X(q) in paragraphs 29.5.4.2 [rand.eng.lcong] p5, 29.5.4.3 [rand.eng.mers] p8, and 29.5.4.4 [rand.eng.sub] p10 where there is no special treatment of q.size() == 0.
  4. The proposed replacement for seed_seq::randomize given above allows for the case q.size() == 0.

See N2391 and N2423 for some further discussion.

Proposed resolution:

Adopt the proposed resolution in N2423.

[ Kona (2007): The LWG adopted the proposed resolution of N2423 for this issue. The LWG voted to accelerate this issue to Ready status to be voted into the WP at Kona. ]