T operator() (engine& eng) const { return (T)eng.uniform(min, max); }
T operator() (engine& eng, const int bound) const { return (T)eng.uniform(min, bound); }