On 20/07/12 19:59, Jonathan M Davis wrote:
As long as rndGen isn't called with its full path (std.random.rndGen), any
module which uses it could declare its own rndGen, and it would be used
instead of std.random's, in which case you could do whatever you want with its
type or seed.
I did consider that, but I found myself wondering what would happen if I did
something like this:
///////////////////////////////////////////////////////////
import std.random;
@property ref MyRNG rndGen()
{
// etc. ...
}
void main()
{
auto s = randomSample(iota(0, 100), 10);
// and do something with s
}
///////////////////////////////////////////////////////////
Calling randomSample like this ought to involve rndGen; but given that
randomSample is in std.random, would it use my self-defined rndGen, or that from
std.random?
OK, I probably should and certainly could have tested this myself ... :-) I was
just wondering if there was a _trivial_ way to override the default RNG type.