The topic you requested is included in another documentation set. For convenience, it's displayed below. Choose Switch to see the topic in its original location.



Returns a floating-point value from a random sequence.


The ISO C++ Standard states that this function should return values in the range [0, 1). Visual Studio is not yet compliant with this constraint. As a workaround to generate values in this range, use uniform_real_distribution.

template<class RealType, size_t Bits, class Generator>
RealType generate_canonical(Generator& Gen);


The floating point integral type. For possible types, see <random>.


The random number generator.


The random number generator.

The template function calls operator() of Gen repeatedly and packs the returned values into a floating-point value x of type RealType until it has gathered the specified number of mantissa bits in x. The specified number is the smaller of Bits (which must be nonzero) and the full number of mantissa bits in RealType. The first call supplies the lowest-order bits. The function returns x.


Header: <random>

Namespace: std