std::uniform_random_bit_generator

来自cppreference.com
< cpp‎ | numeric‎ | random
 
 
 
 
在标头 <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

close