When I compile and run this script,
#include <iostream>
int main(){unsigned long long q=20;q=q*50;std::cout<<q;return 0;}
The expected output is 1000, as in Visual C++ 2005:
C:\Users\Acer\Documents\test>cl /EHsc debug.cpp
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 14.00.50727.42 for 80x86
Copyright (C) Microsoft Corporation. All rights reserved.
debug.cpp
Microsoft (R) Incremental Linker Version 8.00.50727.42
Copyright (C) Microsoft Corporation. All rights reserved.
/out:debug.exe
debug.obj
C:\Users\Acer\Documents\test>debug
1000
but in Digital Mars C++ compiler, it makes it print 4294967297000 instead.
C:\Users\Acer\Documents\test>dmc debug.cpp -I D:/dm/stlport/stlport
link debug,,,user32+kernel32/noi;
C:\Users\Acer\Documents\test>debug
4294967297000