Spec-Zone.ru › C++

std::uniform_random_bit_generator

Определено в заголовке <random>
template< class G >
concept uniform_random_bit_generator =
    std::invocable<G&> && std::unsigned_integral<std::invoke_result_t<G&>> &&
    requires {
        { G::min() } -> std::same_as<std::invoke_result_t<G&>>;
        { G::max() } -> std::same_as<std::invoke_result_t<G&>>;
        requires std::bool_constant<(G::min() < G::max())>::value;
    };
(с C++20)

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

Семантические требования

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

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

Примечания

Для удовлетворения требования std::bool_constant<(G::min() < G::max())>::value, как G::min(), так и G::max() должны быть константными выражениями, а результат сравнения должен быть true.

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/cpp/numeric/random/uniform_random_bit_generator

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API