#include #include class SampleNormal { typedef boost::rand48 rng_t; typedef boost::normal_distribution dist_t; typedef boost::variate_generator generator_t; rng_t rng_; dist_t dist_; generator_t dice_; public: SampleNormal(double mean, double sigma) : rng_(boost::uint64_t(time(0))) , dist_(mean, sigma) , dice_(rng_, dist_) {} double operator()() { return dice_(); } }; #include int main() { SampleNormal normal_sampler(3, 0.5); for (int i = 0; i != 10; ++i) std::cout << normal_sampler() << '\n'; std::flush(std::cout); return 0; }