Learning c++ and reading through a project, I found this.
#define EMPTY_MACRO do {} while (0)
...
#if ASSERTS_ENABLED
#define ASSERTCORE(expr) assert(expr)
#else
#define ASSERTCORE(expr) EMPTY_MACRO
#endif
What is the purpose of EMPTY_MACRO
? Is it unnecessary or is there a reason for it?