# std::independent_bits_engine

From cppreference.com
< cpp‎ | numeric‎ | random

Defined in header `<random>` |  |
template< class Engine, std::size_t W, class UIntType > class independent_bits_engine; |  | (since C++11)

`independent_bits_engine` is a random number engine adaptor that produces random numbers with different number of bits than that of the wrapped engine.

### Template parameters

Engine | - | the type of the wrapped engine
W | - | the number of bits the generated numbers should have
UIntType | - | the type of the generated random numbers. The type must be unsigned integral type.
Type requirements
- `Engine` must meet the requirements of RandomNumberEngine.
- `W` must be greater than zero, and no greater than std::numeric_limits<UIntType>::digits.

### Member types

Member type | Definition
`result_type` | UIntType

### Member functions

(constructor) | constructs the engine adaptor (public member function)
seed | sets the state of the underlying engine (public member function)
base | returns the underlying engine (public member function)

##### Generation

operator() | advances the state of the underlying engine and returns the generated value (public member function)
discard | advances the adaptor's state by a specified amount (public member function)

##### Characteristics

min [static] | gets the smallest possible value in the output range (always zero). (public static member function)
max [static] | gets the largest possible value in the output range (always 2w -1). (public static member function)

### Non-member functions

operator==operator!= | compares the internal states of the adaptors and underlying engines (function)
operator<<operator>> | performs stream input and output on pseudo-random number engine adaptor (function)

Retrieved from "https://en.cppreference.com/mwiki/index.php?title=cpp/numeric/random/independent_bits_engine&oldid=103668"