In previous versions of C++ all truth and falsity were represented by integers, but the new ISO/ANSI standard has introduced a new type: bool. This new type has two possible values, false or true.
Every expression can be evaluated for its truth or falsity. Expressions that evaluate mathematically to zero will return false, all others will return true.
Many compilers previously offered a bool type that was represented internally as a long int and thus had a size of 4 bytes. ANSI compliant compilers will now often provide a 1-byte bool.