diff --git a/src/util/random.hpp b/src/util/random.hpp index fc79317d..075d5aa7 100644 --- a/src/util/random.hpp +++ b/src/util/random.hpp @@ -5,10 +5,10 @@ #include namespace util { - template - typename std::enable_if::type seeded_random_engine( - std::random_device& source - ) { + template < + class T = std::mt19937, + std::size_t N = T::state_size * sizeof(typename T::result_type)> + auto seeded_random_engine(std::random_device& source) { std::random_device::result_type randomData[(N - 1) / sizeof(source()) + 1]; std::generate(std::begin(randomData), std::end(randomData), std::ref(source)); std::seed_seq seeds(std::begin(randomData), std::end(randomData));