std::random_device::random_device
From cppreference.com
< cpp | numeric | random | random device
explicit random_device(const std::string& token = /*implementation-defined*/ ); |
(since C++11) | |
Constructs a new std::random_device object, making use of the argument token, if provided, in implementation-defined manner.
Typical implementation on a Linux system, for example, expects token to be the name of a character device that produces random numbers when read from, with the default value "/dev/urandom".
[edit] Exceptions
Throws an implementation-defined exceptions derived from std::exception on failure.
[edit] Example
Demonstrates the two commonly available types of std::random_device on Linux
#include <iostream> #include <random> int main() { std::uniform_int_distribution<int> d(0, 10); std::random_device rd1; // uses /dev/urandom for(int n = 0; n < 10; ++n) std::cout << d(rd1) << ' '; std::cout << '\n'; std::random_device rd2("/dev/random"); // much slower on Linux for(int n = 0; n < 10; ++n) std::cout << d(rd2) << ' '; std::cout << '\n'; }
Output:
7 10 7 0 4 4 6 9 4 7 2 4 10 6 3 2 0 6 3 7