---
name: "std::discard_block_engine"
section: "3cxx"
platform: "linux"
package: "libstdc++-12-doc"
version: "12.4.0-5"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/std::discard_block_engine/3cxx"
---

# std::discard\_block\_engine(3cxx)

## NAME

std::discard\_block\_engine\< \_RandomNumberEngine, \_\_p, \_\_r \>

## SYNOPSIS

`#include <random>`

### Public Types

template\<**typename** **\_Sseq** \> **using** **\_If\_seed\_seq** = **typename** **enable\_if**\< \_\_detail::\_\_is\_seed\_seq\< **\_Sseq**, **discard\_block\_engine**, **result\_type** \>::value \>::type\
 **typedef** \_RandomNumberEngine::result\_type **result\_type**\

### Public Member Functions

**discard\_block\_engine** ()\
 Constructs a default discard\_block\_engine engine.  **discard\_block\_engine** (\_RandomNumberEngine &&**\_\_rng**)\
 Move constructs a discard\_block\_engine engine.  template\<**typename** **\_Sseq** , **typename**  = \_If\_seed\_seq\<\_Sseq\>\> **discard\_block\_engine** (**\_Sseq** &\_\_q)\
 Generator construct a discard\_block\_engine engine.  **discard\_block\_engine** (const \_RandomNumberEngine &**\_\_rng**)\
 Copy constructs a discard\_block\_engine engine.  **discard\_block\_engine** (**result\_type** **\_\_s**)\
 Seed constructs a discard\_block\_engine engine.  const \_RandomNumberEngine & **base** () const noexcept\
 Gets a const reference to the underlying generator engine object.  **void** **discard** (unsigned long long **\_\_z**)\
 Discard a sequence of random numbers.  **result\_type** **operator()** ()\
 Gets the next value in the generated random number sequence.  **void** **seed** ()\
 Reseeds the discard\_block\_engine object with the default seed for the underlying base class generator engine.  template\<**typename** **\_Sseq** \> \_If\_seed\_seq\< **\_Sseq** \> **seed** (**\_Sseq** &\_\_q)\
 Reseeds the discard\_block\_engine object with the given seed sequence.  **void** **seed** (**result\_type** **\_\_s**)\
 Reseeds the discard\_block\_engine object with the default seed for the underlying base class generator engine.

### Static Public Member Functions

**static** constexpr **result\_type** **max** ()\
 Gets the maximum value in the generated random number range.  **static** constexpr **result\_type** **min** ()\
 Gets the minimum value in the generated random number range.

### Static Public Attributes

**static** constexpr size\_t **block\_size**\
 **static** constexpr 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 \> &**\_\_os**, const **std::discard\_block\_engine**\< **\_RandomNumberEngine1**, **\_\_p1**, **\_\_r1** \> &\_\_x)\
 Inserts the current state of a discard\_block\_engine random number generator engine `__x` into the output stream `__os`.  bool **operator==** (const **discard\_block\_engine** &**\_\_lhs**, const **discard\_block\_engine** &**\_\_rhs**)\
 Compares two discard\_block\_engine random number generator objects of the same type for equality.  template\<**typename** **\_RandomNumberEngine1** , size\_t \_\_p1, size\_t \_\_r1, **typename** \_CharT , **typename** \_Traits \> **std::basic\_istream**\< \_CharT, \_Traits \> & **operator\>\>** (**std::basic\_istream**\< \_CharT, \_Traits \> &**\_\_is**, **std::discard\_block\_engine**\< **\_RandomNumberEngine1**, **\_\_p1**, **\_\_r1** \> &\_\_x)\
 Extracts the current state of a % subtract\_with\_carry\_engine random number generator engine `__x` from the input stream `__is`.

## 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`

## 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.

## 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.

### template\<typename \_RandomNumberEngine , size\_t \_\_p, size\_t \_\_r\> std::discard\_block\_engine\< \_RandomNumberEngine, \_\_p, \_\_r \>::discard\_block\_engine (const \_RandomNumberEngine & \_\_rng)` [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.

### template\<typename \_RandomNumberEngine , size\_t \_\_p, size\_t \_\_r\> std::discard\_block\_engine\< \_RandomNumberEngine, \_\_p, \_\_r \>::discard\_block\_engine (\_RandomNumberEngine && \_\_rng)` [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.

### 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.

### template\<typename \_RandomNumberEngine , size\_t \_\_p, size\_t \_\_r\> template\<typename \_Sseq , typename = \_If\_seed\_seq\<\_Sseq\>\> 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.

## Member Function Documentation

### template\<typename \_RandomNumberEngine , size\_t \_\_p, size\_t \_\_r\> const \_RandomNumberEngine & std::discard\_block\_engine\< \_RandomNumberEngine, \_\_p, \_\_r \>::base () const` [inline]`, ` [noexcept]`

Gets a const reference to the underlying generator engine object.

### 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.

### template\<typename \_RandomNumberEngine , size\_t \_\_p, size\_t \_\_r\> static constexpr result\_type std::discard\_block\_engine\< \_RandomNumberEngine, \_\_p, \_\_r \>::max ()` [inline]`, ` [static]`, ` [constexpr]`

Gets the maximum value in the generated random number range.

### template\<typename \_RandomNumberEngine , size\_t \_\_p, size\_t \_\_r\> static constexpr result\_type std::discard\_block\_engine\< \_RandomNumberEngine, \_\_p, \_\_r \>::min ()` [inline]`, ` [static]`, ` [constexpr]`

Gets the minimum value in the generated random number range.

### 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.

### 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.

### template\<typename \_RandomNumberEngine , size\_t \_\_p, size\_t \_\_r\> template\<typename \_Sseq \> \_If\_seed\_seq\< \_Sseq \> 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.

### 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.

## Friends And Related Symbol 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 \> & \_\_os, const std::discard\_block\_engine\< \_RandomNumberEngine1, \_\_p1, \_\_r1 \> & \_\_x)` [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.

### 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 \> & \_\_is, std::discard\_block\_engine\< \_RandomNumberEngine1, \_\_p1, \_\_r1 \> & \_\_x)` [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.

## Author

Generated automatically by Doxygen for libstdc++ from the source code.
