|
template<typename I , typename S , typename Gen = detail::default_random_engine &> |
requires random_access_iterator< I > &&sentinel_for< S, I > &&permutable< I > &&uniform_random_bit_generator< std::remove_reference_t< Gen > > &&convertible_to< invoke_result_t< Gen & >, iter_difference_t< I > > I | ranges::shuffle (I const first, S const last, Gen &&gen=detail::get_random_engine()) |
| function template shuffle
|
|
template<typename Rng , typename Gen = detail::default_random_engine &> |
requires random_access_range< Rng > &&permutable< iterator_t< Rng > > &&uniform_random_bit_generator< std::remove_reference_t< Gen > > &&convertible_to< invoke_result_t< Gen & >, iter_difference_t< iterator_t< Rng > > > borrowed_iterator_t< Rng > | ranges::shuffle (Rng &&rng, Gen &&rand=detail::get_random_engine()) |
| This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
|
|