...
The assert() macro is an excellent example of an unsafe macro. Its argument may be evaluated once or not at all, depending on the NDEBUG macro. For more information, see EXP39-C. Avoid side effects in assertions.
Non-Compliant
...
Code Example
One problem with unsafe macros is side effects on macro arguments as shown by this non-compliant code example.
...