# std::uniform_random_bit_generator

< 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()` 拥有均摊常数复杂度

### 注解

requires std::bool_constant<(G::min() < G::max())>::value; 要求仅若 G::min() 与 G::max() 均为常量表达式，且比较结果为 true 才得到满足。