Date
2010-10-21.18:28:33
Message id
3758

Content

Proposed resolution:

  1. In [rand.util.seedseq]/2, class seed_seq synopsis replace:

    class seed_seq 
    { 
    public:
       ...
       template<class InputIterator,
          size_t u = numeric_limits<iterator_traits<InputIterator>::value_type>::digits>
              seed_seq(InputIterator begin, InputIterator end,
              size_t u = numeric_limits<typename iterator_traits<InputIterator>::value_type>::digits);
       ...
    };
    

    and do a similar replacement in the member description between p.3 and p.4.

  2. In [rand.util.seedseq]/2, class seed_seq synopsis and in the member description between p.3 and p.4 replace:

    template<class InputIterator,
      size_t u = numeric_limits<iterator_traits<InputIterator>::value_type>::digits>
          seed_seq(InputIterator begin, InputIterator end);
    template<class InputIterator, size_t u>
    seed_seq(InputIterator begin, InputIterator end, implementation-defined s);
    

    In [rand.synopsis], header <random> synopsis, immediately after the class seed_seq declaration and in [rand.util.seedseq]/2, immediately after the class seed_seq definition add:

    template<size_t u, class InputIterator>
      seed_seq make_seed_seq(InputIterator begin, InputIterator end);
    

    In [rand.util.seedseq], just before p.5 insert two paragraphs:

    The first constructor behaves as if it would provide an integral constant expression u of type size_t of value numeric_limits<typename iterator_traits<InputIterator>::value_type>::digits.

    The second constructor uses an implementation-defined mechanism to provide an integral constant expression u of type size_t and is called by the function make_seed_seq.

    In [rand.util.seedseq], just after the last paragraph add:

    template<size_t u, class InputIterator>
       seed_seq make_seed_seq(InputIterator begin, InputIterator end);
    

    where u is used to construct an object s of implementation-defined type.

    Returns: seed_seq(begin, end, s);