|  16.2.1 Built-in bool type 
C++ introduced a built-in boolean data type called bool.  The
presence of this new type makes it unnecessary to use anintwith
the values0and1and improves type safety.  The two
possible values of aboolaretrueandfalse--these
are reserved words.  The compiler knows how to coerce aboolinto
anintand vice-versa. 
If your compiler does not have the booltype andfalseandtruekeywords, an alternative is to produce such a type using atypedefof an enumeration representing the two possible values: 
 |  | enum boolvals { false, true };
typedef enum boolvals bool;
 | 
 
What makes this simple alternative attractive is that it prevents having
to adjust the prolific amount of code that might use boolobjects
once your compiler supports the built-in type. 
 |