Assisting in avoiding assert... always!

api, assert, c, c++

Solution

I'm not sure I really understand the problem, actually. Asserts are only expensive if they go off, which is fine anyway, since you're now in an exception situation.

`assert` is only enabled in debug builds, so use the release build of a third-party library. But really, asserts shouldn't be going off every moment.

Problem

In C and C++ `assert` is a very heavyweight routine, writing an error to `stdout` and terminating the program. In our application we have implemented a much more robust replacement for assert and given it its own macro. Every effort has been made to replace `assert` with our macro, however there are still many ways `assert` can be reintroduced (e.g., from internal third-party libraries, naïve injection, etc.) Any suggestions on how we can reduce, limit or even eradicate uses of `assert`? The best answer will be one the compiler can catch for us so we don't have to babysit the code base as much as we do currently.

Original source

Related problems