2 ms·
That's the whole point. =] This is a surprising aspect of C++: the shift expression doesn't have the type of the declared variable. The integer literals we are
by chandlerc 15y ago
That's the whole point. =] This is a surprising aspect of C++: the shift expression doesn't have the type of the declared variable.
The integer literals we are shifting are of 'int' type, and the shift occurs at that type (based on the usual arithmetic conversions). There is stack overflow question with explanations and a good blog post here about it:
http://stackoverflow.com/questions/836544/usual-arithmetic-conversion-a-better-set-of-rules http://stackoverflow.com/questions/836544/usual-arithmetic-c...
http://blogs.msdn.com/b/oldnewthing/archive/2004/03/10/87247.aspx http://blogs.msdn.com/b/oldnewthing/archive/2004/03/10/87247...
Also, you can look through the C++98 standard to understand all the details. Relevant sections are [expr]p9 and [expr.shift].