|
Boost : |
Subject: Re: [boost] safe integer library -- the scope
From: Robert Ramey (ramey_at_[hidden])
Date: 2015-12-11 21:10:01
On 12/11/15 5:50 PM, Robert Ramey wrote:
To belabor the point, consider this little program:
#include <iostream>
#include <cstdint>
using namespace std;
int main(){
int8_t x = 100;
int y = x * x;
cout << y << endl;
uint32_t z1 = 100;
int8_t z2 = -100;
auto y2 = z1 * z2;
cout << y2 << endl;
return 0;
}
which prints out:
10000
4294957296
This is due to the application of the C++ type promotion rules.
Is it any reason that C++ drives people crazy?
One looks at the program and sees arithmetic. One executes the program
an gets ... well I don't know what you're getting.
Robert Ramey
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk