
From: Eric Niebler <eric@boost-consulting.com>
Rob Stewart wrote:
That way a debug build asserts, which likely gets a core dump, and a release build throws an exception. If the exception is a type that is never caught in the code except in main(), then main() can report the problem and exit. That gives a clean exit with a diagnostic in release builds, while giving the opportunity for post mortem debugging in debug builds.
No. An assert should not throw, not in release mode, not ever. If an
The code you snipped used assert(false) followed by throwing an exception. The assertion never threw an exception. IOW, belt and suspenders. -- Rob Stewart stewart@sig.com Software Engineer http://www.sig.com Susquehanna International Group, LLP using std::disclaimer;