# std::discard_block_engine< _RandomNumberEngine, __p, __r > Class Template Reference
[Random Number Generators]

List of all members.

## Public Types

- typedef
  _RandomNumberEngine::result_type result_type

## Public Member Functions

- discard_block_engine ()
- discard_block_engine (const _RandomNumberEngine &__rne)
- discard_block_engine (result_type __s)
- template<typename _Sseq , typename = typename std::enable_if<!std::is_same<_Sseq, discard_block_engine>::value && !std::is_same<_Sseq, _RandomNumberEngine>::value> ::type> discard_block_engine (_Sseq &__q)
- discard_block_engine (_RandomNumberEngine &&__rne)
- const _RandomNumberEngine & base () const
- void discard (unsigned long long __z)
- result_type max () const
- result_type min () const
- result_type operator() ()
- void seed (result_type __s)
- template<typename _Sseq > void seed (_Sseq &__q)
- void seed ()

## Static Public Attributes

- static const size_t block_size
- static const size_t used_block

## Friends

- template<typename _RandomNumberEngine1 , size_t __p1, size_t __r1, typename _CharT , typename _Traits > std::basic_ostream< _CharT,
  _Traits > & operator<< (std::basic_ostream< _CharT, _Traits > &, const std::discard_block_engine< _RandomNumberEngine1, __p1, __r1 > &)
- bool operator== (const discard_block_engine &__lhs, const discard_block_engine &__rhs)
- template<typename _RandomNumberEngine1 , size_t __p1, size_t __r1, typename _CharT , typename _Traits > std::basic_istream< _CharT,
  _Traits > & operator>> (std::basic_istream< _CharT, _Traits > &, std::discard_block_engine< _RandomNumberEngine1, __p1, __r1 > &)

## Detailed Description

### template<typename _RandomNumberEngine, size_t __p, size_t __r>
class std::discard_block_engine< _RandomNumberEngine, __p, __r >

Produces random numbers from some base engine by discarding blocks of data.

0 <= `__r` <= `__p`

Definition at line 784 of file random.h.

## Member Typedef Documentation

template<typename _RandomNumberEngine, size_t __p, size_t __r>

typedef _RandomNumberEngine::result_type std::discard_block_engine< _RandomNumberEngine, __p, __r >::result_type

The type of the generated random value.

Definition at line 791 of file random.h.

## Constructor & Destructor Documentation

template<typename _RandomNumberEngine, size_t __p, size_t __r>

std::discard_block_engine< _RandomNumberEngine, __p, __r >::discard_block_engine | ( |  | ) | `[inline]`

Constructs a default discard_block_engine engine.

The underlying engine is default constructed as well.

Definition at line 802 of file random.h.

template<typename _RandomNumberEngine, size_t __p, size_t __r>

std::discard_block_engine< _RandomNumberEngine, __p, __r >::discard_block_engine | ( | const _RandomNumberEngine & | __rne | ) | `[inline, explicit]`

Copy constructs a discard_block_engine engine.

Copies an existing base class random number generator.

Parameters:

  | rng | An existing (base class) engine object.

Definition at line 812 of file random.h.

template<typename _RandomNumberEngine, size_t __p, size_t __r>

std::discard_block_engine< _RandomNumberEngine, __p, __r >::discard_block_engine | ( | _RandomNumberEngine && | __rne | ) | `[inline, explicit]`

Move constructs a discard_block_engine engine.

Copies an existing base class random number generator.

Parameters:

  | rng | An existing (base class) engine object.

Definition at line 822 of file random.h.

template<typename _RandomNumberEngine, size_t __p, size_t __r>

std::discard_block_engine< _RandomNumberEngine, __p, __r >::discard_block_engine | ( | result_type | __s | ) | `[inline, explicit]`

Seed constructs a discard_block_engine engine.

Constructs the underlying generator engine seeded with `__s`.

Parameters:

  | __s | A seed value for the base class engine.

Definition at line 832 of file random.h.

template<typename _RandomNumberEngine, size_t __p, size_t __r>
template<typename _Sseq , typename = typename std::enable_if<!std::is_same<_Sseq, discard_block_engine>::value && !std::is_same<_Sseq, _RandomNumberEngine>::value> ::type>

std::discard_block_engine< _RandomNumberEngine, __p, __r >::discard_block_engine | ( | _Sseq & | __q | ) | `[inline, explicit]`

Generator construct a discard_block_engine engine.

Parameters:

  | __q | A seed sequence.

Definition at line 845 of file random.h.

## Member Function Documentation

template<typename _RandomNumberEngine, size_t __p, size_t __r>

const _RandomNumberEngine& std::discard_block_engine< _RandomNumberEngine, __p, __r >::base | ( |  | ) | const`[inline]`

Gets a const reference to the underlying generator engine object.

Definition at line 889 of file random.h.

template<typename _RandomNumberEngine, size_t __p, size_t __r>

void std::discard_block_engine< _RandomNumberEngine, __p, __r >::discard | ( | unsigned long long | __z | ) | `[inline]`

Discard a sequence of random numbers.

Todo:
  Look for a faster way to do discard.

Definition at line 916 of file random.h.

template<typename _RandomNumberEngine, size_t __p, size_t __r>

result_type std::discard_block_engine< _RandomNumberEngine, __p, __r >::max | ( |  | ) | const`[inline]`

Gets the maximum value in the generated random number range.

Todo:
  This should be constexpr.

Definition at line 907 of file random.h.

template<typename _RandomNumberEngine, size_t __p, size_t __r>

result_type std::discard_block_engine< _RandomNumberEngine, __p, __r >::min | ( |  | ) | const`[inline]`

Gets the minimum value in the generated random number range.

Todo:
  This should be constexpr.

Definition at line 898 of file random.h.

template<typename _RandomNumberEngine , size_t __p, size_t __r>

discard_block_engine< _RandomNumberEngine, __p, __r >::result_type std::discard_block_engine< _RandomNumberEngine, __p, __r >::operator() | ( |  | ) |

Gets the next value in the generated random number sequence.

Definition at line 662 of file random.tcc.

template<typename _RandomNumberEngine, size_t __p, size_t __r>
template<typename _Sseq >

void std::discard_block_engine< _RandomNumberEngine, __p, __r >::seed | ( | _Sseq & | __q | ) | `[inline]`

Reseeds the discard_block_engine object with the given seed sequence.

Parameters:

  | __q | A seed generator function.

Definition at line 878 of file random.h.

template<typename _RandomNumberEngine, size_t __p, size_t __r>

void std::discard_block_engine< _RandomNumberEngine, __p, __r >::seed | ( | result_type | __s | ) | `[inline]`

Reseeds the discard_block_engine object with the default seed for the underlying base class generator engine.

Definition at line 865 of file random.h.

template<typename _RandomNumberEngine, size_t __p, size_t __r>

void std::discard_block_engine< _RandomNumberEngine, __p, __r >::seed | ( |  | ) | `[inline]`

Reseeds the discard_block_engine object with the default seed for the underlying base class generator engine.

Definition at line 854 of file random.h.

## Friends And Related Function Documentation

template<typename _RandomNumberEngine, size_t __p, size_t __r>
template<typename _RandomNumberEngine1 , size_t __p1, size_t __r1, typename _CharT , typename _Traits >

std::basic_ostream<_CharT, _Traits>& operator<< | ( | std::basic_ostream< _CharT, _Traits > & | ,
|  | const std::discard_block_engine< _RandomNumberEngine1, __p1, __r1 > & |  |
| ) |  |  | `[friend]`

Inserts the current state of a discard_block_engine random number generator engine `__x` into the output stream `__os`.

Parameters:

  | __os | An output stream.
  | __x | A discard_block_engine random number generator engine.

Returns:
  The output stream with the state of `__x` inserted or in an error state.

template<typename _RandomNumberEngine, size_t __p, size_t __r>

bool operator== | ( | const discard_block_engine< _RandomNumberEngine, __p, __r > & | __lhs,
|  | const discard_block_engine< _RandomNumberEngine, __p, __r > & | __rhs |
| ) |  |  | `[friend]`

Compares two discard_block_engine random number generator objects of the same type for equality.

Parameters:

  | __lhs | A discard_block_engine random number generator object.
  | __rhs | Another discard_block_engine random number generator object.

Returns:
  true if the infinite sequences of generated values would be equal, false otherwise.

Definition at line 940 of file random.h.

template<typename _RandomNumberEngine, size_t __p, size_t __r>
template<typename _RandomNumberEngine1 , size_t __p1, size_t __r1, typename _CharT , typename _Traits >

std::basic_istream<_CharT, _Traits>& operator>> | ( | std::basic_istream< _CharT, _Traits > & | ,
|  | std::discard_block_engine< _RandomNumberEngine1, __p1, __r1 > & |  |
| ) |  |  | `[friend]`

Extracts the current state of a % subtract_with_carry_engine random number generator engine `__x` from the input stream `__is`.

Parameters:

  | __is | An input stream.
  | __x | A discard_block_engine random number generator engine.

Returns:
  The input stream with the state of `__x` extracted or in an error state.

The documentation for this class was generated from the following files:

- random.h
- random.tcc