1313. Seed sequence's param function not useful for pure output iterator

Section: 29.6.7.1 [rand.util.seedseq] Status: NAD Submitter: Daniel Krügler Opened: 2010-02-07 Last modified: 2016-02-10

Priority: Not Prioritized

View all other issues in [rand.util.seedseq].

View all issues with NAD status.

Discussion:

The Seed sequence requirements (29.6.1.2 [rand.req.seedseq]) require the existence of a member function

template<typename OutputIterator>
void param(OutputIterator ob);

The fact that this function returns void instead of the value of ob after accepting the sequence data leads to the same problem as in issue 865 - In case of pure output iterators there is no way to serialize further data into that data sink.

[ 2010-02-07 Howard adds: ]

At the time this issue was opened, the suggested changes are with respect to an anticipated draft which does not yet exist.

[ 2010 Pittsburgh: ]

No technical counterarguments, but it is simply too late in the process to make this change at this point.

Proposed resolution:

  1. In Table 109 — Seed sequence requirements, expression "r.param(ob)" change the
    Return type entry:

    voidOutputIterator
    
  2. In 29.6.7.1 [rand.util.seedseq], class seed_seq synopsis change

    template<class OutputIterator>
    voidOutputIterator param(OutputIterator dest) const;