From 0ea0f2e49a5577d64b45adf2036e09c5fd740dc0 Mon Sep 17 00:00:00 2001 From: Osyotr Date: Tue, 29 Jul 2025 00:08:40 +0300 Subject: [PATCH] Make UniformRandom standard-conforming std::uniform_int_distribution requires sizeof(T) >= sizeof(short) Signed-off-by: Osyotr --- libs/base/random.hpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/libs/base/random.hpp b/libs/base/random.hpp index 799745102..54e2f49b2 100644 --- a/libs/base/random.hpp +++ b/libs/base/random.hpp @@ -12,12 +12,15 @@ class UniformRandom std::random_device m_rd; std::mt19937 m_gen; - std::uniform_int_distribution m_distr; + + using distribution_int_type = + std::conditional_t, short, unsigned short>>; + std::uniform_int_distribution m_distr; public: UniformRandom(T min, T max) : m_gen(m_rd()), m_distr(min, max) {} UniformRandom() : UniformRandom(std::numeric_limits::min(), std::numeric_limits::max()) {} - T operator()() { return m_distr(m_gen); } + T operator()() { return static_cast(m_distr(m_gen)); } }; } // namespace base