
From: "Vladimir Prus" <ghost@cs.msu.su> To: <boost@lists.boost.org> Sent: Tuesday, May 24, 2005 2:28 AM Subject: [boost] Re: random.hpp - suggestion for utility function
christopher diggins wrote:
AFAICT the shortest way to emulate the std::rand() function using boost/random.hpp would be as follows:
unsigned int longhand_boost_rand() { boost::mt19937 rng; boost::uniform_int<> dist(0, RAND_MAX); boost::variate_generator < boost::mt19937, boost::uniform_int<> > generator(rng, dist); return generator(); }
(apologies if I made any mistakes)
You can make it a bit shorter, I believe:
boost::mt19937 e; return boost::uniform_int<>(0, 100)(e); [snip]
Thanks you Vladmir and Michael for responding. So the correct shortest way would then have been simply to write: unsigned int boost_rand() { static boost::mt19937 e; return boost::uniform_int<>(0, RAND_MAX)(e); } ? So the purpose of variate_generator only generates function objects? The introductory example http://www.boost.org/libs/random/ gives the impression that it is a neccessary step. I think the documentation then should be updated to be less confusing. -- Christopher Diggins