Chris Frey wrote:
> refs_ = new size_t(1);
...
> Although if new throws, we have bigger problems to worry about. :-)
On any machine with virtual memory, I agree. If you've run out of
memory in a case like this, game's over anyway. If it throws, it's
saying we can't even have FOUR MEASLY BYTES OF MEMORY. I doubt a
typical program can even recover without needing four bytes of memory
somewhere just for error processing. It's doomed. Might as well just
core dump at the point of failure to make debugging easier than if you
try in vain to fail softly, thus masking the source of the failure.
But we have heard in the past from people using MySQL++ under QNX, which
implies embedded systems, which implies no VM. In that world, OOM is
not nearly so unlikely, especially during development.
So: a swap()ping we shall go.