I've recently discovered that it's undefined behaviour to start anything with two underscores in C++.
So I've been fixing all my include guards.
But I've encountered code like
#ifdef __WINDOWS___
#endif
#ifdef __GNUC__
#endif
But isn't using __GNUC__
on a windows compiler UB and vice-versa? What should I do here?