I'm using someone else's code that was written with an older compiler that mapped a special BOOL type to an unsigned int, but in my compiler it's mapped to a true bool. In some places in his code he uses the bitwise shift operator << on the bool type, which I had never seen before and my compiler surprised me when it didn't complain.
Is that valid C++? Does the bool automatically get promoted to an int or uint?
I saw this related question, which provided some clarity on another issue, but it doesn't address the shift operators.