Во-первых, у меня на самом деле нет проблем, но мне нравится, чтобы все было как можно проще.Я использую шаблонный класс с именем Math
, и помимо множества других вещей есть случайные функции.
Различные типы случайных функций и функция для установки случайного начального числа.Таким образом, каждая функция, кроме функции seed, использует тип class Real
.Но когда я хочу установить начальное значение, мне нужно передать какой-то случайный (хаха) тип, чтобы можно было вызвать функцию:
Math<u32>::SeedRandom(System::time());
Опять же, это не реальная проблема, но мне любопытноможно получить тот же результат без необходимости использовать <u32>
.
Здесь фрагмент из класса Math:
template <class Real>
class Math
{
public:
static void SeedRandom(u32 seed) { srand(seed); }
static Real UnitRandom() { return (Real)((f64)rand() / (f64)RAND_MAX); }
};
btw.f64
- это typedef'd для double
и u32
для unsigned int
.