Comment by munificent
Comment by munificent a day ago
That would make for a bad experience in the presence of macros or other compile-time configuration.
It's pretty common to have code that only exists in one configuration but not others. In those, you end up with some obviously pointless code that the compiler should silently discard. It would be no fun if you couldn't compile your release build because the compiler yelled at you that the removed `assert()`s turned some of the surrounding code into dead code.