C++ 名前付き要件: RandomNumberEngineAdaptor (C++11 以降)
From cppreference.com
RandomNumberEngineAdaptor は、別の ベースエンジン と呼ばれる RandomNumberEngine の出力を変換する RandomNumberEngine です。
[編集] 要件
以下を考えます。
- B: RandomNumberEngine
- b: 型 B のオブジェクト
- A: B をベースエンジンとして適合させる RandomNumberEngineAdaptor
- a: 型 A のオブジェクト
| 関数 | 意味論 |
|---|---|
| A::A(); | ベースエンジンは、そのデフォルトコンストラクタによるかのように初期化されます。 |
| bool operator==(const A& lhs, const A& rhs); | lhs のベースエンジンが rhs のベースエンジンと等しいかどうかを返します。 |
| A::A(result_type s); | ベースエンジンは s で初期化されます。 |
| template<class Sseq> A::A(Sseq& q); | ベースエンジンは q で初期化されます。 |
| void seed(); | b.seed() を呼び出します。 |
| void seed(result_type s); | b.seed(s) を呼び出します。 |
| template<class Sseq> void seed(Sseq& q); | b.seed(q) を呼び出します。 |
さらに
- A の各関数の複雑度は、B の関数の複雑度を超えません。
- A の状態は、B の状態を含みます。
- A の状態のサイズは、b のサイズ以上です。
- A の状態のコピーは、B の状態のコピーを含みます。
- A のテキスト表現は、B のテキスト表現を含みます。
[編集] 標準ライブラリ
以下の標準ライブラリ機能は、RandomNumberEngineAdaptor を満たします。
| (C++11) |
乱数エンジンの一部の出力を破棄する (クラステンプレート) |
| (C++11) |
乱数エンジンの出力を指定されたビット数のブロックにパックする (クラステンプレート) |
| (C++11) |
乱数エンジンの出力を異なる順序で提供する (クラステンプレート) |