```
template<class RealType, size_t bits, class URBG>
RealType generate_canonical(URBG& g);
```

[*Note 2*: *end note*]

If the values produced by g are uniformly distributed,
the instantiation's results are distributed as uniformly as possible.

Obtaining a value in this way
can be a useful step
in the process of transforming
a value generated by a uniform random bit generator
into a value
that can be delivered by a random number distribution.

â€”