On Thursday, 30 April 2015 at 22:24:15 UTC, bearophile wrote:
Paul:
When compiled on a 64 bit machine, this line
int r = uniform(0, mobs.length);
".length" returns a size_t, and 0 is an int. uniform() probably
decides to unify those types to a size_t. A size_t is 32 bit on
32 bit machines
Paul:
When compiled on a 64 bit machine, this line
int r = uniform(0, mobs.length);
".length" returns a size_t, and 0 is an int. uniform() probably
decides to unify those types to a size_t. A size_t is 32 bit on
32 bit machines and 64 bits on 64 bit machines. But D "int" is
always a 32 bit
When compiled on a 64 bit machine, this line
int r = uniform(0, mobs.length);
gives me an error:
Error: cannot implicitly convert expression (uniform(0,
mobs.length)) of type ulong to int
but it compiles ok on a 32 bit machine.
I thought it was the expression on the righthand side returning