Namespaces
Variants

std::seed_seq:: seed_seq

From cppreference.net
seed_seq ( ) noexcept ;
(1) (начиная с C++11)
seed_seq ( const seed_seq & ) = delete ;
(2) (начиная с C++11)
template < class InputIt >
seed_seq ( InputIt begin, InputIt end ) ;
(3) (начиная с C++11)
template < class T >
seed_seq ( std:: initializer_list < T > il ) ;
(4) (начиная с C++11)
1) Конструктор по умолчанию. После создания v является пустым.
2) Конструктор копирования удален: std::seed_seq не подлежит копированию.
3) Создает std::seed_seq со значениями в диапазоне [ begin , end ) . Эквивалентно инициализации по умолчанию v  с последующим выполнением for ( InputIt s = begin ; s ! = end ; ++ s )
v  . push_back ( modseed ( * s ) ) ;
, где mod_seed(x)=x mod 2 32
.
Если std:: iterator_traits < InputIt > :: value_type не является целочисленным типом, программа является некорректной.
Если InputIt не удовлетворяет требованиям LegacyInputIterator , поведение не определено.
4) Эквивалентно seed_seq ( il. begin ( ) , il. end ( ) ) . Этот конструктор позволяет list-initialization из списка начальных значений.
Эта перегрузка участвует в разрешении перегрузки только если T является целочисленным типом.

Параметры

begin, end - пара итераторов, обозначающих начальную последовательность инициализации
il - начальная последовательность инициализации

Пример

#include <iterator>
#include <random>
#include <sstream>
int main()
{
    std::seed_seq s1; // конструктор по умолчанию
    std::seed_seq s2{1, 2, 3}; // можно использовать список инициализации
    std::seed_seq s3 = {-1, 0, 1}; // другая форма списка инициализации
    int a[10] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    std::seed_seq s4(a, a + 10); // можно использовать итераторы
    std::istringstream buf("1 2 3 4 5"); 
    std::istream_iterator<int> beg(buf), end;
    std::seed_seq s5(beg, end); // даже итераторы ввода из потока
}

Отчеты о дефектах

Следующие отчеты об изменениях поведения, влияющие на дефекты, были применены задним числом к ранее опубликованным стандартам C++.

DR Applied to Behavior as published Correct behavior
LWG 2180 C++11 все конструкторы были не выбрасывающими исключения только перегрузка ( 1 ) является не выбрасывающей исключения
LWG 3422 C++11 1. перегрузка ( 1 ) не была noexcept
2. перегрузка ( 4 ) не была ограничена
1. сделана noexcept
2. ограничена