If implementation limitations
prevent generating nondeterministic random numbers,
the implementation may employ a random number engine
.
class random_device {
public:
using result_type = unsigned int;
static constexpr result_type min() { return numeric_limits<result_type>::min(); }
static constexpr result_type max() { return numeric_limits<result_type>::max(); }
random_device() : random_device(implementation-defined) {}
explicit random_device(const string& token);
result_type operator()();
double entropy() const noexcept;
// no copy functions
random_device(const random_device&) = delete;
void operator=(const random_device&) = delete;
};