It is not about boolean sentences. It is about specific operators in these "sentences" (logical expressions, actually)
The built-in &&
operator (as well as ||
) are special: they guarantee that the left-hand side is evaluated before the right-hand size. They have a sequence point between the LHS and RHS evaluations. And they don't evaluate the RHS if the result is pre-determined by the LHS. Aside from this (and some other operators that have similar sequencing properties), there are no guarantees about the order of evaluation of logical expressions, or any other expressions.
The above applies to built-in &&
and ||
operators. Overloaded &&
and ||
operators are not special in any way.