MSVCではbool変数同士の論理和でも加算でも再評価されて0か1のいずれかが再設定されてる
内部処理は全く同じ
gccの内部処理は分からんけど
https://i.imgur.com/3EzADoO.png