LINUX.ORG.RU

Непонятки со смартами

 ,


0

1

Привет. Досталась небольшая игруля в наследство, здесь есть куча код вида

SomeObject* obj = new SomeObject();
obj->init();
obj-setBla();
obj-setBla();
obj-setBla();

this->addChild(obj, param1, param2);
obj->release();
Чтобы не париться, я сделал типо так
boost::shared_ptr<SomeObject>obj(new SomeObject());
obj->init();
obj-setBla();
obj-setBla();
obj-setBla();

this->addChild(obj.get(), param1, param2);
Но когда меняю на смарт, то сразу после запуска все очень громко падает. Собственно вопрос, где я туплю. Спсб.

Ответ на: комментарий от wota

Ну, так вот. Потенциальная опасность работы с исключениями в Си++ сильно преуменьшает полезность RAII. Кстати, неслучайно, что в Qt стараются избегать исключений.

dave ★★★★★
()
Последнее исправление: dave (всего исправлений: 1)
Ответ на: комментарий от Boy_from_Jungle

не, нифига. тут жабоиды набежали говном не кормленные.

ckotinko ☆☆☆
()
Ответ на: комментарий от dave

вы, жабисты, мне бандеровских хохлов напоминаете.

те тоже шизофреники лютые, сами по уши в дерьмо закопались, никто им не мешал 20 лет. но винят во всем «москалей». потому что шизики.

вот и жабисты вечно орут как в С++ все плохо и как у них жаба быстрее проца работает.

ckotinko ☆☆☆
()
Ответ на: комментарий от encyrtid

да тормозит ваш GC. он всегда тормозит. всегда и везде. просто у жаберов руки настолько заточены под жопу, что без GC у них все будет падать и сегфолтиться еще до запуска.

ckotinko ☆☆☆
()
Ответ на: комментарий от ckotinko

да тормозит ваш GC. он всегда тормозит. всегда и везде. просто у жаберов руки настолько заточены под жопу, что без GC у них все будет падать и сегфолтиться еще до запуска.

Все понятно, ближайшую стену, надеюсь, сам найдешь.

encyrtid ★★★★★
()
Ответ на: комментарий от encyrtid

молодец, бро. сопротивляйся вражеской пропаганде.

ckotinko ☆☆☆
()
Ответ на: комментарий от dave

Ну, так вот. Потенциальная опасность работы с исключениями в Си++ сильно преуменьшает полезность RAII.

При исключении деструкторы вызываются. Вы точно в курсе, что такое RAII? И вы неправильно назвали причину, по которой в Qt стараются избегать исключений. Исключения bad_alloc никак не избежать, так зачем шило на мыло?

В Qt избегают исключений лишь потому, что их отлов длиннее проверки кода возврата - зачем заставлять пользователя плодить простыни кода? Я хочу загрузить изображение на свою 3d сцену, а если не выйдет, то сделать запись в лог. И на кой чёрт мне сдались эти ваши динамоязычные исключения брошенные откуда-нибудь чуть ли не с уровня ядра? Кстати говоря, в C# уже давно отошли от java-модели, где каждый метод может бросить исключение - и это тоже рушит ваше предположение.

quiet_readonly ★★★★
()
Ответ на: комментарий от quiet_readonly

Оставим написанное на твоей совести.

dave ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.