C + + no tiene operadores aritméticos como la suma y la multiplicación definida para el tipo Bool . Estas operaciones todavía funcionan debido a un proceso conocido como promoción integral . La misma característica que convierte automáticamente los bytes de ints y ints a largos cuando es necesario también convertir un Bool a un int . Debido a esto , los valores booleanos pueden ser operados en aritméticamente de la misma manera como los tipos integrales . Instrucciones
1
Convertir los valores booleanos en enteros , con 0 para falso y 1 para verdadero : "b * = true false " se convierte " . B = 1 * 0 "
2
Evaluar la expresión entera multiplicando los valores : "b = 1 * 0 " se convierte " . b = 0 "
3
convertir el resultado al un valor booleano. Zero es falso, y cualquier otra cosa es cierta. Dependiendo de la configuración del compilador y , esta conversión puede generar una advertencia. Convertir como: "b = 0 " se convierte " . B = false "