bool (C++)
questa parola chiave è un tipo incorporato.una variabile di questo tipo può avere valori true e false.Le espressioni condizionali dispongono del tipo bool e pertanto contenere valori di tipo bool.Ad esempio, i!=0 include ora true o false a seconda del valore di i.
i valori true e false includere la seguente relazione:
!false == true
!true == false
La seguente istruzione:
if (condexpr1) statement1;
se condexpr1 viene true, statement1 è sempre eseguiti; se condexpr1 viene false, statement1 non verrà mai eseguito.
quando un suffisso o un prefisso ++ l'operatore viene applicato a una variabile di tipo bool, la variabile è impostata su true.il suffisso o il prefisso -- l'operatore non può essere applicato a una variabile di questo tipo.
bool il tipo partecipa alle promozioni integrali.Un r-value di tipo bool può essere convertito in un r-value di tipo intcon, false diventare zero e true diventare uno.Come tipo diverso, bool contribuisce alla risoluzione dell'overload.
Specifici di Microsoft
Nella rappresentazione C++4.2, i file di intestazione C++ standard contengono un oggetto typedef tale uguagliato bool con int.In Visual C++ 5,0 e versioni successive, bool viene implementato come tipo incorporato con una dimensione di 1 byte.Ciò significa che per Visual C++ 4,2, una chiamata a sizeof (bool) rende a 4, mentre in Visual C++ 5,0 e versioni successive, gli stessi conterrà 1. di chiamata.Questa situazione può provocare problemi di danneggiamento della memoria se si dispone di membri della struttura definiti di tipo bool in Visual C++ 4,2 e combinano i file oggetto (OBJ) e/o DLL compilati con i 4,2 e le 5,0 o i compilatori successivi.
__BOOL_DEFINED la macro può essere utilizzata per eseguire il wrapping del codice che dipende da a bool è supportato.
Esempio
// bool.cpp
#include <stdio.h>
int main()
{
#if !defined(__BOOL_DEFINED)
printf_s("bool is not supported\n");
#elif defined(__BOOL_DEFINED)
printf_s("bool is supported\n");
#endif
}