---
name: "std::discard_block_engine"
section: "3"
platform: "linux"
package: "gcc"
version: "16.2.1+r23+gd564253eb6c8-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/std::discard_block_engine"
---

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

## NAME

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

## SYNOPSIS

\#include \<random\>

### Public Types

template\<typename \_Sseq\> using **\_If\_seed\_seq**\
 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.

**Precondition**

$ 0 q p $.RE

**Since**

C++11

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