class seed_seq {
public:
  // types
  using result_type = uint_least32_t;
  // constructors
  seed_seq();
  template<class T>
    seed_seq(initializer_list<T> il);
  template<class InputIterator>
    seed_seq(InputIterator begin, InputIterator end);
  // generating functions
  template<class RandomAccessIterator>
    void generate(RandomAccessIterator begin, RandomAccessIterator end);
  // property functions
  size_t size() const noexcept;
  template<class OutputIterator>
    void param(OutputIterator dest) const;
  // no copy functions
  seed_seq(const seed_seq& ) = delete;
  void operator=(const seed_seq& ) = delete;
private:
  vector<result_type> v;   // exposition only
};seed_seq();
template<class T>
 seed_seq(initializer_list<T> il);
template<class InputIterator>
  seed_seq(InputIterator begin, InputIterator end);
for( InputIterator s = begin; s != end; ++s)
 v.push_back((*s));template<class RandomAccessIterator>
  void generate(RandomAccessIterator begin, RandomAccessIterator end);
and, in order, increment begin[ by , increment begin[ by , and set begin[k] to .
and, in order, update begin[ by xoring it with , update begin[ by xoring it with , and set begin[k] to .
size_t size() const noexcept;
template<class OutputIterator>
  void param(OutputIterator dest) const;
copy(v.begin(), v.end(), dest);