
Steven Watanabe wrote:
In MSVC8 BOOST_HAS_LONG_LONG is defined and I'm using the boost::long_long_type the way it was suggested that I should.
I don't think this is related to the use of long long since the following program works okay.
#include <iostream>
int main() { long long x = 1.0; double d = x; std::cout << x << std::endl; }
It turns out that I was using boost::long_long_type, and when I changed that typedef to long long the problem goes away. I remember you mentioned this to me a while back:
You might also consider using boost::int64_t from boost/cstdint.hpp guarded by BOOST_NO_INT64_T
msvc has 64 bit ints, but doesn't call them long long.
I checked sizeof(long long) in my MSVC8 environment and it was 8 bytes, so I think I'm happy to use it. Do you know what data type boost::long_long_type was using? I ought to be able to check in a version of the code sometime tomorrow that works in MSVC8,9, gcc 3.2.2 and later, and icc9 and later. Thanks, Luke