Hi,

I was doing a bit of reading into the C++03 standard and I noticed that 'long long' is not standard. If it is not standard, why have so many compilers (Especially MSVC) made up a non-standard integral type?

On 32-bit windows, 'unsigned int' happens to be 32-bits. Also, 'unsigned long' happens to be 32-bits. They could have completely eliminated the need for 'long long' if they had made 'long' 64-bits on 32-bit architectures.

Why didn't things turn out this way? I want to be as standards conforming as possible in my code, which means I can't use 'long long'. However, I need access to 64-bit integrals on 32-bit architectures (Windows XP, in this example). Is there anything I can do?

Thanks.