Namespaces
Variants

std:: uniform_random_bit_generator

From cppreference.net
Défini dans l'en-tête <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 ;

} ;
(depuis C++20)

Le concept uniform_random_bit_generator<G> spécifie que G est le type d'un générateur uniforme de bits aléatoires, c'est-à-dire que les objets de type G sont des objets fonction retournant des valeurs entières non signées telles que chaque valeur dans la plage des résultats possibles a (idéalement) une probabilité égale d'être retournée.

Exigences sémantiques

uniform_random_bit_generator<G> est modélisé uniquement si, étant donné un objet quelconque g de type G :

  • g() est dans l'intervalle [ G :: min ( ) , G :: max ( ) ] ,
  • g() a une complexité amortie constante.

Notes

Afin de satisfaire l'exigence std:: bool_constant < ( G :: min ( ) < G :: max ( ) ) > :: value , à la fois G :: min ( ) et G :: max ( ) doivent être des expressions constantes, et le résultat de la comparaison doit être true .