
Robert Ramey wrote:
LOL - I removed it yesterday. The cited file needs to know if int64 is an intrinsic type or a synonym for some other type - e.g. long on a 64 bit machine or ?. If it is, it will generate a compile error when the cited file is compiled. I would like to avoid this. For my purposes, if it were defined as a synonym for long long it would be ok so the above macros don't quite give me what I need in this instance. I'm still undecided what to do about this.
I suppose the above proposal would work for me. I would use
#if ! defined(BOOST_NO_INT64) && ! defined(BOOST_NO_INTRINSIC_INT64_T) virtual void load(int64_t & t) = 0; #endif
Suppose for the moment that we won't get any new config macros and stick with the ones present. After reading John's mail, wouldn't the following be ok for you? template <typename T> foo(); #ifdef BOOST_HAS_LONG_LONG template<> foo<long long>() #else # ifdef BOOST_HAS_MS_INT64 template<> foo<__int64>() # endif #endif More can't be done with the current macros, as you have no way of knowing if int64_t won't either collide with long long or __int64. Or can it? Markus