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 でなければなりません。