I ran into these lines:
#define bool bool
#define false false
#define true true
I don\'t think I need to say more than \"wtf?\", but just
It is called self referential Macros.
According to gcv reference :
A self-referential macro is one whose name appears in its definition. Recall that all macro definitions are rescanned for more macros to replace. If the self-reference were considered a use of the macro, it would produce an infinitely large expansion. To prevent this, the self-reference is not considered a macro call. It is passed into the preprocessor output unchanged.
Reference example :
One common, useful use of self-reference is to create a macro which expands to itself. If you write
#define EPERM EPERMthen the macro EPERM expands to EPERM. Effectively, it is left alone by the preprocessor whenever it’s used in running text. You can tell that it’s a macro with ‘#ifdef’. You might do this if you want to define numeric constants with an enum, but have ‘#ifdef’ be true for each constant.