From 9e65c025414d4bebf6793fa9f6ca64a6895f0df7 Mon Sep 17 00:00:00 2001 From: lisyarus Date: Sat, 8 Jul 2023 11:17:28 +0300 Subject: [PATCH] Make random::uniform_from work with raw arrays --- libs/random/include/psemek/random/uniform.hpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libs/random/include/psemek/random/uniform.hpp b/libs/random/include/psemek/random/uniform.hpp index 31b27718..d125079e 100644 --- a/libs/random/include/psemek/random/uniform.hpp +++ b/libs/random/include/psemek/random/uniform.hpp @@ -62,9 +62,11 @@ namespace psemek::random template decltype(auto) uniform_from(RNG && rng, Container && container) { - if (container.size() == 0) + using std::size; + using std::begin; + if (size(container) == 0) throw std::runtime_error("cannot sample from empty container"); - return *std::next(container.begin(), uniform(rng, 0, container.size() - 1)); + return *std::next(begin(container), uniform(rng, 0, size(container) - 1)); } }