Что должно быть в случае неудачного вызова new, исключение, возвращаться 0 или и то и другое?
Здравствуйте, 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).
wrote:
> Что должно быть в случае неудачного вызова new, исключение, возвращаться 0 или и то и другое?
http://www.parashift.com/c++-faq-lite/freestore-mgmt.html#faq-16.6
--
Maxim YegorushkinPosted via RSDN NNTP Server 1.9