29 Numerics library [numerics]

29.6 Random number generation [rand]

29.6.1 Requirements [rand.req]

29.6.1.1 General requirements [rand.req.genl]

В этом подпункте [rand]эффект создания экземпляра шаблона:

  1. a)с параметром типа шаблона с именем Sseq undefined, если соответствующий аргумент шаблона не является cv-unqualified и удовлетворяет требованиям seed sequence.

  2. b)с параметром типа шаблона с именем URBG undefined, если соответствующий аргумент шаблона не является cv-unqualified и удовлетворяет требованиям uniform random bit generator.

  3. c)с параметром типа шаблона с именем Engine undefined, если соответствующий аргумент шаблона не является cv-unqualified и удовлетворяет требованиям random number engine.

  4. d)что параметр типа шаблона с именем RealType не определен , если соответствующий аргумент шаблона не резюме, неквалифицированное и один из float, doubleили long double.

  5. e)который имеет тип параметра шаблона с именем IntType не определен , если соответствующий аргумент шаблона не резюме, неквалифицированные и один из short, int, long, long long, unsigned short, unsigned int, unsigned long, или unsigned long long.

  6. f)что параметр типа шаблона с именем UIntType не определен , если соответствующий аргумент шаблона не резюме, неквалифицированное и один из unsigned short, unsigned int, unsigned longили unsigned long long.

В этом подпункте [rand]фразы вида «x является итератором определенного типа» должны интерпретироваться как эквивалентные более формальному требованию, что «x является значением типа, удовлетворяющим требованиям указанного типа итератора».

В этом подпункте [rand]должен быть объявлен любой конструктор, который может быть вызван с одним аргументом и который удовлетворяет требованиям, указанным в этом подпункте explicit.