bool
types sont décrits dans la section §3.9.1, types Fondamentaux. De l'intérêt ici c'est une phrase de l'alinéa 6:
Les valeurs de type bool
sont soit true
ou false
.47
La référence de la note de bas de page 47 offre d'intéressants renseignements supplémentaires:
47) à l'Aide d'un bool
de la valeur dans le sens décrit par la présente Norme Internationale comme "undefined", tels que par l'examen de la valeur d'un non initialisée automatique d'objets, peut pousser à se comporter comme si elle n'est ni true
ni false
.
C'est juste une conséquence directe de la norme imposant pas d'exigences sur les programmes avec un comportement indéterminé.
Il n'existe pas de conditions relatives à la taille sur bool
, autres que l'implicite "au moins un octet" qui s'applique à tous les types comme une conséquence de la C++ modèle de mémoire.
Il y a également pas d'exigences sur la représentation interne d' bool
objets, cependant, en raison des exigences concernant l'intégrale des conversions (true
doit convertir 1
et false
de 0
), les implémentations peuvent être enclins à choisir les mêmes observations pour true
et 1
, et pour false
et 0
, depuis qui rend de telles conversions inutiles.