The generation algorithm
yields the value returned by the last invocation of
e()
while advancing
e's state as described above
.
template<class Engine, size_t p, size_t r>
class discard_block_engine {
public:
using result_type = typename Engine::result_type;
static constexpr size_t block_size = p;
static constexpr size_t used_block = r;
static constexpr result_type min() { return Engine::min(); }
static constexpr result_type max() { return Engine::max(); }
discard_block_engine();
explicit discard_block_engine(const Engine& e);
explicit discard_block_engine(Engine&& e);
explicit discard_block_engine(result_type s);
template<class Sseq> explicit discard_block_engine(Sseq& q);
void seed();
void seed(result_type s);
template<class Sseq> void seed(Sseq& q);
result_type operator()();
void discard(unsigned long long z);
const Engine& base() const noexcept { return e; };
private:
Engine e;
int n;
};