bool (C++)

Essa palavra-chave é um tipo interno. Uma variável desse tipo pode ter valores true e false. As expressões condicionais têm o tipo bool e, sendo assim, têm valores do tipo bool. Por exemplo, i != 0 agora tem true ou false dependendo do valor de i.

Visual Studio 2017 versão 15.3 e posterior (disponível com /std:c++17 e posterior): o operando de um operador de incremento ou decremento pode não ser do tipo bool. Em outras palavras, dada uma variável b de tipo bool, essas expressões não são mais permitidas:

    b++;
    ++b;
    b--;
    --b;

Os valores true e false têm a seguinte relação:

!false == true
!true == false

Na instrução a seguir:

if (condexpr1) statement1;

Se condexpr1 for true, statement1 sempre será executado; se condexpr1 for false, statement1 nunca será executado.

Quando um operador de sufixo ou prefixo ++ for aplicado a uma variável do tipo bool, a variável será definida como true.

Visual Studio 2017 versão 15.3 e posterior: operator++ para bool foi removido do idioma e não tem mais suporte.

O operador de sufixo ou prefixo -- não pode ser aplicado a uma variável desse tipo.

O tipo bool participa de promoções de integral padrão. Um r-value do tipo bool pode ser convertido em um r-value do tipo int, com false se tornando zero e true se tornando um. Como um tipo diferente, bool participa da resolução de sobrecarga.

Confira também

Palavras-chave
Tipos internos