std::shuffle_order_engine<Engine,K>::seed
From cppreference.com
< cpp | numeric | random | shuffle order engine
| void seed(); |
(1) | (C++11以降) |
| void seed( result_type value ); |
(2) | (C++11以降) |
| template< class SeedSeq > void seed( SeedSeq& seq ); |
(3) | (C++11以降) |
基となるエンジンの内部状態を新しいシード値を使用して再初期化します。
1) 基となるエンジンをデフォルトのシード値でシードします。事実上、基となるエンジンを `e` とすると `e.seed()` を呼び出します。
2) 基となるエンジンをシード値 `value` でシードします。事実上、基となるエンジンを `e` とすると `e.seed(value)` を呼び出します。
3) 基となるエンジンをシードシーケンス `seq` でシードします。事実上、基となるエンジンを `e` とすると `e.seed(seq)` を呼び出します。
このオーバーロードは、`SeedSeq` がSeedSequence の要件を満たす場合にのみ、オーバーロード解決に参加します。
[編集] パラメータ
| value | - | 基となるエンジンの内部状態の初期化に使用するシード値 |
| seq | - | 基となるエンジンの内部状態の初期化に使用するシードシーケンス |
[編集] 例外
3) `SeedSeq` が std::seed_seq でない場合、`seq.generate` の呼び出しによってスローされる例外をスローします。
[編集] 不具合報告
以下の動作変更を伴う欠陥報告が、以前に公開されたC++標準に遡って適用されました。
| DR | 適用対象 | 公開された動作 | 正しい動作 |
|---|---|---|---|
| LWG 2181 | C++11 | オーバーロード (3) は、`seq.generate` の呼び出しがスローする場合でもスローしませんでした。 | 例外を伝播させます。 |