命名空间
变体
操作

std::uniform_random_bit_generator

来自 cppreference.cn
< cpp‎ | 数值‎ | 随机
 
 
 
 
定义于头文件 <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())>::valueG::min()G::max() 都必须是常量表达式,并且比较结果必须是 true