// Defining TRUE and FALSE is usually a Bad Idea, // because you will probably be inconsistent with anyone // else who had the same clever idea. // Therefore: DON'T USE THIS FILE. #ifndef _bool_h #define _bool_h 1 // make sure a config.h has been included before #if defined(__GNUG__) || defined(HAVE_BOOL_TYPE) #undef TRUE #undef FALSE #define TRUE true #define FALSE false #else class bool { int rep; public: bool () : rep(0) {} bool (int i) : rep(!!i) {} bool (const bool &b) : rep(b.rep) {} bool &operator= (const bool b) { rep = b.rep; return *this; } bool &operator= (int i) { rep = !!i; return *this; } operator int () { return rep; } operator int() const { return rep; } }; #undef true #undef false #define true (bool(1)) #define false (bool(0)) #endif #endif