3.4.2. booleano, verdadero y falso

Antes de que bool se convirtiese en parte del Estándar C++, todos tendían a utilizar diferentes técnicas para producir comportamientos similares a los booleanos. Esto produjo problemas de portabilidad y podían acarrear errores sutiles.

El tipo bool del Estándar C++ puede tener dos estados expresados por las constantes predefinidas true (lo que lo convierte en el entero 1) y false (lo que lo convierte en el entero 0). Estos tres nombres son palabras reservadas. Además, algunos elementos del lenguaje han sido adaptados:

Elemento Uso con booleanos
&& || ! Toman argumentos booleanos y producen valores bool
< > <= >= == != Producen resultados bool
if, for, while, do Las expresiones condicionales se convierten en valores bool
?: El primer operando se convierte a un valor bool

Tabla 3.1. Expresiones que utilizan booleanos


Como hay mucho código existente que utiliza un int para representar una bandera, el compilador lo convertirá implícitamente de int a bool (los valores diferentes de cero producirán true, mientras que los valores cero, producirán false). Idealmente, el compilador le dará un aviso como una sugerencia para corregir la situación.

Un modismo que se considera «estilo de programación pobre» es el uso de ++ para asignar a una bandera el valor true. Esto aún se permite, pero está obsoleto, lo que implica que en el futuro será ilegal. El problema es que se está haciendo una conversión implícita de un bool a un int, incrementando el valor (quizá más allá del rango de valores booleanos cero y uno), y luego implícitamente convirtiéndolo otra vez a bool.

Los punteros (que se describen más adelante en este capitulo) también se convierten automáticamente a bool cuando es necesario.