
On 7/26/04 3:14 PM, "Aaron W. LaFramboise"
John Maddock wrote:
Sorry but I pretty certain we can't do that: code that uses long long does so where we want to overload or specialise on a specific *type*. boost::int64_t is a different beast entirely, and need not be long long (in fact it isn't always), your patches would break Boost quite badly for compilers where long long != int64_t.
OK. So how can these instances of long long usage be made to not break GCC when -std=c++98 is specified? Perhaps a macro could be defined by boost.config BOOST_LONG_LONG_DECORATOR with a value of __extension__ for GCC that would be used to decorate these uses of long long to prevent problems?
We already have macros to tell us when "(unsigned) long long" exist. Guessing the meaning of "-std=c++98", those macros shouldn't be active with that setting. If they are active, then we need to tweak some config files. We also need to make sure the macros are being used. If someone is using a naked "long long" without an #if-block, then we need to fix that bug. Note that even after "long long" is disabled, there need not be any 64-bit type at all on the system (so "int64_t" may not work either). -- Daryle Walker Mac, Internet, and Video Game Junkie darylew AT hotmail DOT com