It seems that g++/C++ is completely broken with respect to portable
64-bit numbers and scanf/printf.

uint64_t is long long int on 32-bit machines and long int on 64-bit
machines and scanf/printf require the corresponding %lld %ld which is
painfully difficult.

Until they fix it, either we use the pain in the ass PRIu64 macro "x = "
PRIu64 " things" which screws up computed print strings and user
configurable strings or we suck it up and continue to use tsu64 for
64bit numbers or switch to int64 uint64.  I don't think tsu64 is
readable.  At least inku64 scanned as intu64.  tsu64 scans as some
aol username.

My suggestion is to go with int64, uint64.  It is readable, generic,
doesn't conflict with standard libs and lets us use:

long long int which is portable for uint64
int which is portable for int32
short which is portable for int16

Why the hell uint64_t is defined this way and g++ complains even
though long int == long long it is beyond me.

Suggestions, comments?

john

Reply via email to