| title | bool (C++) | Microsoft Docs | ||
|---|---|---|---|
| ms.custom | |||
| ms.date | 11/04/2016 | ||
| ms.reviewer | |||
| ms.suite | |||
| ms.technology |
|
||
| ms.tgt_pltfrm | |||
| ms.topic | language-reference | ||
| f1_keywords |
|
||
| dev_langs |
|
||
| helpviewer_keywords |
|
||
| ms.assetid | 9abed3f2-d21c-4eb4-97c5-716342e613d8 | ||
| caps.latest.revision | 9 | ||
| author | mikeblome | ||
| ms.author | mblome | ||
| manager | ghogen |
This keyword is a built-in type. A variable of this type can have values true and false. Conditional expressions have the type bool and so have values of type bool. For example, i!=0 now has true or false depending on the value of i.
Visual Studio 2017 version 15.3 and later (available with /std:c++17): The operand of a postfix or prefix increment or decrement operator may not be of type bool.
The values true and false have the following relationship:
!false == true
!true == false
In the following statement:
if (condexpr1) statement1;
If condexpr1 is true, statement1 is always executed; if condexpr1 is false, statement1 is never executed.
When a postfix or prefix ++ operator is applied to a variable of type bool, the variable is set to true.
Visual Studio 2017 version 15.3 and later: operator++ for bool was removed from the language and is no longer supported.
The postfix or prefix -- operator cannot be applied to a variable of this type.
The bool type participates in integral promotions. An r-value of type bool can be converted to an r-value of type int, with false becoming zero and true becoming one. As a distinct type, bool participates in overload resolution.