名前空間
変種
操作

std::discard_block_engine<Engine,P,R>::seed

From cppreference.com
 
 
 
 
 
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` の呼び出しがスローする場合でもスローしませんでした。 例外を伝播させます。
English 日本語 中文(简体) 中文(繁體)