Today's lesson: fun with the preprocessor
Please try to compile this simple 3-liner:
#if (4 >> 1 >> 1 != 1)
--> fatal error C1012 !?
Now let's omit parentheses and try again:
#if 4 >> 1 >> 1 != 1
--> warning C4067, and the #if computation is wrong !!
Same things happen if you use "<<" or mix them.
Finally it's interesting to note that this problem seems to be present
at least since MSC 6.0 (this is _MSC_VER == 600 back from 1990). And it
has been confirmed to persist in the latest VS 2005 betas :-)
Markus F.X.J. Oberhumer
< XXXX@XXXXX.COM >