Built-in extended types beyond "(unsigned) long" are not currently supported. So 64-bit numbers are supported only if "long" itself is at least 64 bits. The rationale for limiting the types was that types from the "int_t" template should be usable as value-based template parameters, which weren't necessarily supported for the extended built-in integer types. Can extended types be used currently for value-based template parameters on any platforms/compilers/etc.? Should we drop that idea and only worry about run-time compatibility? Should we have two kinds of templates (for compile- or run-time compatibility)?
There used to be problems with MS's __int64 not being usable in compile time situations, but I believe nowadays long long is useable pretty much everywhere on all compilers (including recent VC++ releases). In any case better to fail later (because the 64-bit type is used in an unsupported context) than to fail early due to integer traits not supporting the type. John.