
In testing the serialization library it has come to my attention that at least the two compilers on 64 bit platforms use something like
typedef long int int64_t; typedef long unsigned int uint64_t;
This is causing me some problems.
At the same time some compilers have
typedef short int wchar_t;
This would cause similar problems for me except for the fact that we have
BOOST_NO_INTRINSIC_WCHAR_T
So I can skip over them at the preprocessor level.
Is there any reason we can't add to the config files?
BOOST_NO_INTRINSIC_INT64 BOOST_NO_INTRINSIC_UINT64
A bad choice of names, the 64-bit integer types definitely are intrinsic in these cases, it's just that they're not the "long long" type (which is actually permitted to have more than 64-bits). One of the issues here is that these types may be defined by the platform headers rather than by us - in fact as more compilers ship with their own <stdint.h> this is more likely to be the case, so we don't really have any way of knowing what the underlying type of int64_t is. Normally, folks will either: Specialise/overload for all built-in types (i.e. not int64_t). or use a specific width type (int64_t or whatever) as the sole overload/specialisation. Can this work for you? John.