Range-v3
Range algorithms, views, and actions for the Standard Library
ranges::v3::shuffle_fn Struct Reference

Public Member Functions

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>>())>
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