The old guard was created just from the identifier + _H, which runs the
chance to clash in projects which use an identifier matching the project
name and which also have a class or central file header which is named
by the project and then has an include guard matching the filename.
Example:
project ABC -> abc.h with ABC_H guard
identifier ABC, header debug.h -> debug.h with ABC_H guard
any.cpp including both abc.h and debug.h will see only one content
Using both the header file name and identifier for the guard name
and prefixing it additionally with a macro specific term should make
the guard both follow the usual pattern for guards matching the
file name and also add some namespacing to allow for similar named
header files in bigger projects (e.g. "debug.h") which could be
included in the same include tree.