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 by , increment by , and set begin[k] to .
and, in order, update by xoring it with , update 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);