new on fail throw http://www.cplusplus.com/reference/new/bad_alloc/