#pragma once #include "Range.h" #include class RNG { public: static RNG & get(); public: int rand_int(const int upper); //! \note upper is non-inclusive int rand_int(const int lower, const int upper); //! \note range is inclusive int rand_int(const Range range); double rand_double(); double rand_double(const double lower, const double upper); bool rand_bool(); private: RNG(); private: std::random_device dev; std::mt19937 rng; };