Still not seeing any real solution for the original question; everyone keeps falling back on the one thing I cannot do (which I have made abundantly clear). So there is no way to catch this assertion? None?
Still not seeing any real solution for the original question; everyone keeps falling back on the one thing I cannot do (which I have made abundantly clear). So there is no way to catch this assertion? None?
Even the idea of catching it is wrong, unless you somehow can jump out of the function. Otherwise, you're going to dereference a NULL pointer. Turn off assertions, and you'll probably get a segfault, or some other amazingly unpredictable behaviour. Why not just initialise the status?
I agree, zacs. I suggested that in a couple of my posts as well. If an assertion is failing (or a signal is being raised, or an exception is being thrown) and you can't rewrite the offending code, the real solution is avoiding the circumstances that make it signal a failure.
Without visibility of details of the offending class, it's hard to give specific advice on alternatives.
jeffcobb: as I said in the second post, there is no way to swallow a SIGABRT signal in a manner that allows your program to just continue. Short of redesigning how your operating system handles that signal, which I assume would be excessive.