👩💻 Join our community of thousands of amazing developers!
It's a known habit to use do-while constructions when there's a need to define a macro that has more than one command instead of using the { simple multicommand brackets }. What was never clear is why this is so. Let's imagine a trace macro that's enabled in debug mode, whilst kept in silence in release builds: Nothing much, but it seems to work. But, as we going to see in the following lines, it is really a buggy piece of code, since a call inside an if-else construction simply doesn't work. Wh...