random_device Class
Generates a random sequence from an external device.
class random_device {
public:
typedef unsigned int result_type;
explicit random_device(const std::string& token = /* implementation defined */);
result_type min() const;
result_type max() const;
double entropy() const;
result_type operator()();
private:
random_device(const random_device&) = delete;
void operator=(const random_device&) = delete;
};
Remarks
The class describes a source of random numbers, preferably from a non-deterministic external device. In this implementation the values produced by default are non-deterministic and cryptographically secure. They are uniformly distributed in the closed range [0, 232).
Example
The following code demonstrates basic use of this class and example results.
// random_device_engine.cpp
// cl.exe /W4 /nologo /EHsc /MTd
#include <random>
#include <iostream>
using namespace std;
int main()
{
random_device engine;
cout << "entropy == " << engine.entropy() << endl;
cout << "min == " << engine.min() << endl;
cout << "max == " << engine.max() << endl;
cout << "a random value == " << engine() << endl;
cout << "a random value == " << engine() << endl;
cout << "a random value == " << engine() << endl;
return (0);
}
entropy == 32 min == 0 max == 4294967295 a random value == 1394551403 a random value == 2932543967 a random value == 2431218048
Requirements
Header: <random>
Namespace: std