std::random_device::random_device (3) - Linux Manuals
std::random_device::random_device: std::random_device::random_device
NAME
std::random_device::random_device - std::random_device::random_device
Synopsis
random_device() : random_device(/*implementation-defined*/) {} (1) (since C++11)
explicit random_device(const std::string& token); (2) (since C++11)
random_device(const random_device& ) = delete; (3) (since C++11)
1) Default constructs a new std::random_device object with an implementation-defined token.
2) Constructs a new std::random_device object, making use of the argument token in an implementation-defined manner.
3) The copy constructor is deleted: std::random_device is not copyable nor movable.
Exceptions
Throws an implementation-defined exceptions derived from std::exception on failure.
Notes
The implementations in libc++ and libstdc++ expect token to be the name of a character device that produces random numbers when read from, with the default value "/dev/urandom", although where the CPU instruction RDRND is available, libstdc++ uses that as the default.
Defect reports
The following behavior-changing defect reports were applied retroactively to previously published C++ standards.
DR Applied to Behavior as published Correct behavior
P0935R0 C++11 default constructor was explicit made implicit
Example
Demonstrates the two commonly available types of std::random_device on Linux
// Run this code
Possible output: