15.20.2 Boolean Equality Operators == and !=

If the operands of an equality operator are both of type boolean, then the operation is boolean equality. The boolean equality operators are associative.

The result of == is true if the operands are both true or both false; otherwise, the result is false.

The result of != is false if the operands are both true or both false; otherwise, the result is true. Thus != behaves the same as ^ (§15.21.2) when applied to boolean operands.