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

来自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.seed(),其中 e 是底层引擎。
2) 以种子值 s 播种底层引擎。相当于调用 e.seed(value),其中 e 是底层引擎。
3) 以种子序列 seq 播种底层引擎。相当于调用 e.seed(seq),其中 e 是底层引擎。
此重载只有在 SeedSeq 满足种子序列 (SeedSequence) 的要求时才会参与重载决议。

[编辑] 参数

value - 用于初始化底层引擎内部状态的种子值
seq - 用于初始化底层引擎内部状态的种子序列

[编辑] 异常

3) 如果 SeedSeq 不是 std::seed_seq,那么就会抛出 seq.generate 调用抛出的异常。

[编辑] 缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
LWG 2181 C++11 即使 seq.generate 调用抛出了异常,重载 (3) 也不会抛出异常 会传播该异常