| 12345678910111213141516171819202122232425 |
- #pragma once
- #include <memory>
- namespace engine {
- namespace detail {
- struct random_impl;
- }
- class random_number_generator {
- public:
- random_number_generator();
- template <typename Provider>
- random_number_generator(Provider const & p)
- : p_impl(std::make_shared<Provider>(p)) {}
- template <typename Provider>
- random_number_generator(std::shared_ptr<Provider> const & p) : p_impl(p) {}
- unsigned int exclusive(unsigned int max) const;
- double exclusive(double min, double max) const;
- double inclusive(double min, double max) const;
- private:
- std::shared_ptr<detail::random_impl> p_impl;
- };
- }
|