I know why include guards exist, and that #pragma once is not standard and thus not supported by all compilers etc.
#pragma once
My question is of a different kind:<
"The assert macro is redefined according to the current state of NDEBUG each time that is included."