From 831b02c9072bc7f40026b23aa97825825a9bc0be Mon Sep 17 00:00:00 2001 From: Danny Robson Date: Sun, 12 May 2019 14:34:53 +1000 Subject: [PATCH] random: add an explicit generator parameter for container choice --- random.hpp | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/random.hpp b/random.hpp index fe5d8db6..c5decdac 100644 --- a/random.hpp +++ b/random.hpp @@ -158,18 +158,28 @@ namespace cruft::random { //------------------------------------------------------------------------- - template + template auto - choose (ContainerT &data) + choose (ContainerT &data, GeneratorT &&gen) { if (data.empty ()) return data.end (); auto const offset = uniform ( typename ContainerT::size_type {0}, - data.size () - 1 + data.size () - 1, + gen ); return std::next (data.begin (), offset); } + + + //------------------------------------------------------------------------- + template + auto + choose (ContainerT &data) + { + return choose (data, generator ()); + } }