5#ifndef ICE_UTIL_RANDOM_H
6#define ICE_UTIL_RANDOM_H
11#ifdef ICE_CPP11_COMPILER
18namespace IceUtilInternal
21ICE_API void generateRandom(
char*,
size_t);
22ICE_API unsigned int random(
int = 0);
24#ifdef ICE_CPP11_COMPILER
27void shuffle(T first, T last)
29 std::random_device rd;
30 std::mt19937 rng(rd());
31 std::shuffle(first, last, rng);
36struct RandomNumberGenerator :
public std::unary_function<std::ptrdiff_t, std::ptrdiff_t>
38 std::ptrdiff_t operator()(std::ptrdiff_t d)
40 return static_cast<std::ptrdiff_t
>(IceUtilInternal::random(
static_cast<int>(d)));
45void shuffle(T first, T last)
47 RandomNumberGenerator rng;
48 random_shuffle(first, last, rng);
#define ICE_API
Definition Config.h:197