#include #include template class RandOne { std::uniform_real_distribution dist_; Tengine eng_; public: /* constructor w. non-deterministic seed */ RandOne() : dist_(0,1) { std::random_device rd; eng_.seed(rd()); } /* random float [0:1[ */ T operator()() { return dist_(eng_); } }; int main() { RandOne r; std::cout << r(); // -> random double in range [0:1[ }