La taille de l' char
, signed char
et unsigned char
est définie à 1 octet, par la Norme C++ lui-même. Je me demande pourquoi il n'a pas de définir l' sizeof(bool)
aussi?
C++03 Standard de $5.3.3/1 dit,
sizeof(char), sizeof(char signé) et sizeof(unsigned char) sont 1; la résultat de sizeof appliquée à tout autre type fondamental (3.9.1) est la mise en œuvre définies. [Note: dans en particulier,sizeof(bool) et sizeof(wchar_t) sont la mise en œuvre définies par.69)
Je comprends la logique qui sizeof(bool) ne peut être inférieur à un octet. Mais est-il une raison pour laquelle il devrait être plus grand que 1 octet soit? Je ne dis pas que les implémentations de la définir à être plus grand que 1, mais la Norme de gauche à être défini par la mise en œuvre que si elle peut être supérieur à 1.
Si il n'y a pas de raison sizeof(bool)
pour être plus grand que 1, je ne comprends pas pourquoi le Standard n'a pas la définir simplement comme de l' 1 byte
, comme il l'a défini sizeof(char)
, et c'est toutes les variantes.