Namespaces
Variants

std::experimental::ranges:: UniformRandomNumberGenerator

From cppreference.net
Определено в заголовочном файле <experimental/ranges/random>
template < class G >

concept bool UniformRandomNumberGenerator =
Invocable < G & > &&
UnsignedIntegral < std:: result_of_t < G & ( ) >> &&
requires {
{ G :: min ( ) } - > Same < std:: result_of_t < G & ( ) >> && ;
{ G :: max ( ) } - > Same < std:: result_of_t < G & ( ) >> && ;

} ;
(ranges TS)

Концепт UniformRandomNumberGenerator<G> определяет, что G является типом генератора равномерно распределенных случайных чисел, то есть объекты типа G представляют собой функциональные объекты, возвращающие беззнаковые целочисленные значения таким образом, что каждое значение в диапазоне возможных результатов имеет (в идеале) равную вероятность быть возвращенным.

UniformRandomNumberGenerator<G> удовлетворяется только в том случае, если для любого объекта g типа G :

  • G::min() и G::max() являются константными выражениями категории prvalue;
  • G::min() < G::max()
  • g() находится в диапазоне [G::min(), G::max()]
  • g() имеет амортизированную постоянную сложность.