On 20/01/15 14:25 +0100, Richard Biener wrote:
Though my question was whether 'throw X()' might instead behave as 'throw std::bad_alloc()' if allocating X exceeds the system's resource limits. I guess the answer is yes as it's undefined?
Right, if we can't allocate memory for an X (plus the EH header) then it's UB, so we can do anything, including using your pool to get room for a bad_alloc and throwing that.