I'm having problems compiling this line of code on a 32bit system:

boost::uniform_int<uint64_t> r(0,0xffffffffffffffff);

compile-time error: "integer constant too large for 'long' type"

compiled fine on my 64 bit machine.

Also sizeof(uint64_t) on both machines is correct at 8 bytes (typedef'd as long long int on the 32bit machine).

Any ideas?