std::uniform_random_bit_generator
提供: cppreference.com
<tbody>
</tbody>
| ヘッダ <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 である場合のみ満たされます。