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);
template<class RealType, size_t bits, class URBG>
RealType generate_canonical(URBG& g);