
Steven Watanabe wrote:
This is only a major problem if you explicitly pass the seed: boost::minstd_rand gen(42);
can't this the be trapped and an an exception thrown?
If the seed comes from somewhere else: boost::minstd_rand gen(time(0)); then either the library or the user has to fix it up.
Currently, the statement boost::minstd_rand gen(time(0)); will work almost all the time.
However, it is wrong because it will fail when time(0) returns 2147483647.
again, can't this be trapped?
Is it worse to fix things up and possibly have multiple seeds yield that same sequence or to let code like this fail randomly once in a while? It seems to me that this bug is likely to be harder to trace because it won't even be reproducible.
Isn't it possible trap the problem and throw an exception? To summarize, I would like any library I use to either work as advertised or notify me that it can't handle the arguments. And I would like this notification to be as soon as possible. If it can't do this, then how can I know that my program will really work? Robert Ramey