# std::UniformRandomBitGenerator

From cppreference.com
< cpp‎ | numeric‎ | random

Defined in header `<random>` |  |
template <class G> concept UniformRandomBitGenerator = std::Invocable<G&> && std::UnsignedIntegral<std::invoke_result_t<G&>> && requires { G::min(); requires std::Same<decltype(G::min()), std::invoke_result_t<G&>>; G::max(); requires std::Same<decltype(G::max()), std::invoke_result_t<G&>>; }; |  | (since C++20)

The concept `UniformRandomBitGenerator <G>` specifies that `G` is the type of a uniform random bit generator, that is, objects of type `G` is a function object returning unsigned integer values such that each value in the range of possible results has (ideally) equal probability of being returned.

`UniformRandomBitGenerator<G>` is satisfied only if, given any object `g` of type `G`:

- `G::min()` and `G::max()` are constant expressions;
- `G::min() < G::max()`
- `g()` is in the range `[G::min(), G::max()]`
- `g()` has amortized constant complexity.

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/random/UniformRandomBitGenerator&oldid=105424"