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
You misunderstand the rules slightly.
It's fine for you to use something that has (or hasn't) been
#DEFINEd by your toolchain, even if it starts with two underscores.
It's certainly not fine for your to
#DEFINE something starting with two underscores yourself.
This is a useful convention; it means that your source code cannot clash with the way your compiler implements the C++ standard.
And I'm glad you're fixing your include guards!