Quote Originally Posted by krivenok
What about bad_alloc?
I've grepped through the code: They use new(nothrow). At least in some places they use placement new. But I have no idea whether they do it everywhere...

My grep also showed that at critical places in the code they catch all exceptions to clean up and then throw it again.