Исключение или Null
От: Аноним  
Дата: 02.08.05 11:59
Оценка:
Что должно быть в случае неудачного вызова new, исключение, возвращаться 0 или и то и другое?
Re: Исключение или Null
От: Bell Россия  
Дата: 02.08.05 12:03
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Что должно быть в случае неудачного вызова new, исключение, возвращаться 0 или и то и другое?

Должно быть сгенерировано исключение std::bad_alloc. Если это поведение не устраивает — можео воспользоваться версией nothrow.
Однако на практике это не всегда верно — VC6, например, всегда возвращает 0.
Любите книгу — источник знаний (с) М.Горький
Re: Исключение или Null
От: srggal Украина  
Дата: 02.08.05 12:09
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Что должно быть в случае неудачного вызова new, исключение, возвращаться 0 или и то и другое?


Если мне не изменяет память — то, по умолчанию, должно быть исключение bad_alloc
Re[2]: Исключение или Null
От: Кодт Россия  
Дата: 02.08.05 12:11
Оценка:
Здравствуйте, Bell, Вы писали:

А>>Что должно быть в случае неудачного вызова new, исключение, возвращаться 0 или и то и другое?

B>Должно быть сгенерировано исключение std::bad_alloc. Если это поведение не устраивает — можео воспользоваться версией nothrow.

new Type(blablabla) — кидает bad_alloc.
new (nothrow) Type(blablabla) — возвращает 0.

B>Однако на практике это не всегда верно — VC6, например, всегда возвращает 0.


Не всегда, а по умолчанию
Нужно в самом начале сказать _set_new_handler(something_that_will_throw_bad_alloc).
Перекуём баги на фичи!
Re[3]: Исключение или Null
От: Кодт Россия  
Дата: 02.08.05 12:12
Оценка:
См. например, ветку http://www.rsdn.ru/Forum/?mid=135611
Автор: Павел Кузнецов
Дата: 20.11.02
Перекуём баги на фичи!
Re: Исключение или Null
От: MaximE Великобритания  
Дата: 02.08.05 12:13
Оценка:
wrote:

> Что должно быть в случае неудачного вызова new, исключение, возвращаться 0 или и то и другое?


http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.6

--
Maxim Yegorushkin
Posted via RSDN NNTP Server 1.9
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.