#ifndef _BIBTEMP_H
#define _BIBTEMP_H
#if __cplusplus >= 201103L // c++11 ?
#include <random>
#else // alors c++98 et ne dispose pas de 'random' et on se rabat sur la vieille méthode C
#include <cstdlib>
#include <ctime>
#endif
namespace sio
{
unsigned int aleatoire(unsigned int debut, unsigned int fin){
if( debut == fin )
return debut;
unsigned int valeur_aleatoire = 0;
#if __cplusplus >= 201103L // c++11 ?
std::random_device graine;
std::mt19937 generateur(graine());
#else
std::srand(std::time(0));
#endif
if( debut >fin ){
unsigned int swap = debut;
debut = fin;
fin = swap;
}
#if __cplusplus >= 201103L // c++11 ?
std::uniform_int_distribution<unsigned int> distribution(debut, fin);
valeur_aleatoire = distribution(generateur);
#else
valeur_aleatoire = (std::rand() % (fin - debut)) + debut;
#endif
return valeur_aleatoire;
}
}
#endif // _BIBTEMP_H