|
template<typename I , typename S , typename Gen = detail::default_random_engine&, requires = (RandomAccessIterator<I>() && Sentinel<S, I>() && Permutable<I>() && UniformRandomNumberGenerator<Gen>() && ConvertibleTo< concepts::UniformRandomNumberGenerator::result_t<Gen>, difference_type_t<I>>())> |
I | operator() (I const begin, S const end, Gen &&gen=detail::get_random_engine()) const |
|
template<typename Rng , typename Gen = detail::default_random_engine&, typename I = iterator_t<Rng>, requires = (RandomAccessRange<Rng>() && Permutable<I>() && UniformRandomNumberGenerator<Gen>() && ConvertibleTo< concepts::UniformRandomNumberGenerator::result_t<Gen>, difference_type_t<I>>())> |
safe_iterator_t< Rng > | operator() (Rng &&rng, Gen &&rand=detail::get_random_engine()) const |
|