std::uniform_random_bit_generator
De cppreference.com
| Definido en el archivo de encabezado <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;
};
|
(desde C++20) | |
El concepto uniform_random_bit_generator<G> especifica que G es el tipo de un generador uniforme de bits aleatorio; es decir, un objeto de tipo G es un objeto función que devuelve valores enteros sin signo tales que cada valor en el rango de los resultados posibles tiene (idealmente) una misma probabilidad de ser devuelto.
Requerimientos semánticos
uniform_random_bit_generator<G> se modela solo si, dado cualquier objeto g de tipo G:
g()está en el rango[G::min(), G::max()];g()tiene una complejidad constante amortizada.
Notas
Para poder satisfacer el requerimiento std::bool_constant<(G::min() < G::max())>::value, tanto G::min() como G::max() deben ser expresiones constantes, y el resultado de la comparación debe ser true.