このキーワードは組み込みの型です。 この型の変数には、値 true と false を設定できます。 条件式の型は bool であるため、その値は bool 型になります。 たとえば、i != 0 は、true の値に応じて、false または i になります。
Visual Studio 2017 バージョン 15.3 以降 (/std:c++17 以降で使用可能): 後置または前置のインクリメント演算子またはデクリメント演算子のオペランドが bool 型ではない場合があります。 つまり、b 型の変数 bool が指定されると、これらの式は以下のように使用できなくなります。
b++;
++b;
b--;
--b;
値 true と false には次のような関係があります。
!false == true
!true == false
次のステートメントがあるとします。
if (condexpr1) statement1;
condexpr1 が true の場合、statement1 は常に実行されます。condexpr1 が false の場合、statement1 は実行されません。
後置または前置の ++ 演算子が bool 型の変数に適用されると、変数は true に設定されます。
Visual Studio 2017 バージョン 15.3 以降: operator++ の bool は言語から削除され、サポートされなくなりました。
後置または前置の -- 演算子は、この型の変数には適用できません。
bool 型は整数の上位変換に使用されます。
bool 型の rvalue は int 型の rvalue に変換できます。false は 0 に、true は 1 になります。 別個の型として、bool はオーバーロードの解決に使用されます。