Namespaces
Variants

std:: uniform_random_bit_generator

From cppreference.net
定义于头文件 <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() 具有均摊常数时间复杂度。

注释

为满足要求 std:: bool_constant < ( G :: min ( ) < G :: max ( ) ) > :: value G :: min ( ) G :: max ( ) 必须为常量表达式,且比较结果必须为 true