Из С++ 11 standard (15.1.p4):
Память для объекта исключения выделяется в неуказанном путь, за исключением случаев, указанных в 3.7.4.1.
Что делать, если выделение не удастся - вместо этого оно выбрасывает std::bad_alloc
? Вызовите std::terminate
? Не выбрано?