@taylorchu why "@" me??
What I mean is if the macro `true` or `false` is already defined on some platform, why not skip the `#define`'s below all together rather than undef and define them again.