Namespaces
Variants

std:: uniform_random_bit_generator

From es.cppreference.net
Definido en el encabezado <random>
template < class G >

concepto uniform_random_bit_generator =
std:: invocable < G & > && std:: unsigned_integral < std:: invoke_result_t < G & >> &&
requiere {
{ G :: min ( ) } - > std:: same_as < std:: invoke_result_t < G & >> ;
{ G :: max ( ) } - > std:: same_as < std:: invoke_result_t < G & >> ;
requiere 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 aleatorios, es decir, objetos de tipo G son objetos función que devuelven valores enteros sin signo de modo que cada valor en el rango de resultados posibles tiene (idealmente) igual probabilidad de ser devuelto.

Requisitos 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 complejidad constante amortizada.

Notas

Para satisfacer el requisito 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 .