Re: Покритикуйте код
От: Mr.Delphist  
Дата: 05.02.15 09:26
Оценка: 25 (5) +8
Здравствуйте, CEMb, Вы писали:

CEM>Часто в примерах встречал код, который инициализировал некоторые члены класса один за другим, в случае ошибки делал деинициализацию уже готовых. В результате к хвосту функции число вызова деинициализаторов было велико. Ну и повторы кода на каждом условии.


RAII

CEM>Как вариант, люди использовали некую булеву переменную для понимания, что инициализации идут хорошо, каждая новая инициализация обкладывалась условием на эту переменную. В конце эта переменная проверялась, если false, то проверялись опять же все хендлы на валидность, и делалась деинициализация.


RAII

CEM>Мне кажется, мой код проще и нагляднее, быстро расширяется, можно не бояться забыть, что что-то пропустил.


RAII

CEM>Жду: критику, доработку, идеи


Основная идея — пусть деинициализацию делает компилятор, автоматически. Благо сейчас уже не надо втягивать себе буст для этого — необходимые решения уже в Стандартной библиотеке. Что-то пошло не так? Срабатывает вываливание из скоупа и соответствующий авто-вызов деструктора. А рукопашный код плох тем, что стопудово что-то забудешь. Да и код замусоривается в портянку. В общем, не устану повторять — RAII.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.