O'Reilly logo
  • Michael Church thinks this is interesting:

More important, however, is that the built-in and and or operators do not evaluate their right-hand operand, unless they have to. The and operator must evaluate its right-hand operand, only if the left-hand operand is true. (If the left-hand operand is false, the entire expression is false, and there is no need to evaluate the right-hand operand.) Similarly, the or operator evaluates its right-hand operand only if the left-hand operand is true. Stopping the evaluation early like this is know...

From

Cover of Exploring C++ 11, Second Edition

Note

The or operator will only evaluate the right hand operand if the left-hand operator is false, not true. Typo?