ReAl (24.10.2005 15:04, просмотров: 1) ответил Николай Коровин на Не совсем понимаю задачу...
"Десь так". Просто мне не хотелось бы выбросить что-то своё, а поймать std::bad_alloc и потом долго думать - в чём же дело. А применения отладчика в таких случаях не всегда помогает, физики хорошо знают, что самый маленький пробный заряд либо уже самим своим существованием искажает картину поля, либо ещё нифига не меряет (но всё равно уже искажает) :-)
Кстати, сам std::bad_alloc весьма внимательно сделан, напрямую выведен из exception без добавления к нему гречески.. тьху, "без никаких латинских примесей" - sizeof(std::bad_alloc)==sizeof(void*) - экземпляр класса состоит только из указателя на VMT (уже присутствующую после линковки) и никаких дополнительных распределений памяти, кроме как под этот указатель, не производится (в отличие от всяческих domain_error, содержащих в себе string, и, как следствие, тянущих дополнительно ераспределени памяти). Но ему проще, но по .what() должен всего лишь вернуть указатель на литерал "bad_alloc"
Да я вот отоспался, и решил пока на это дело плюнуть. string как поле и всё. Просто привычки заставляют задумываться :-)