
Daryle Walker wrote:
It's not legal for 32 bit systems. Either flag the 11112223334 with the LL suffix (and the --long_long command line option) or you are out of luck with Wave. At least as long the code is not hidden inside a non-evaluated #if/#endif block. I've fixed Wave after 1.33.0 to accept large numbers in non-evaluated #if expressions, just to allow to compile Boost. [TRUNCATE]
Maybe one day we could use some sort of bignum class to hold preprocessor numbers. I'm guessing that you currently base the "number too large" errors by trying to load the number into a (built-in) numeric variable. The problem is that it won't work for cross-compilers where the compiling computer's number sizes are smaller than the number sizes on the target computer.
Yes, it currently depends on the size of a 'long' for the platform Wave was compiled for. But the whole expression arithmetic is very localised to a single class, so that changing the implementation isn't an issue at all. Are there any plans to add a bignum class to Boost? Regards Hartmut