Итоговые перспективы
В двух последних главах я попытался показать, как сделать на С++ то, для чего он не предназначен. В методиках управления памятью сочетается все, о чем говорилось в книге, от простейших умных указателей и гомоморфизма до объектов классов и подсчета ссылок. Но имеет ли все сказанное какое-нибудь практическое значение или является высокоинтеллектуальным развлечением?
Во-первых, лучший способ понять границы возможностей С++ и разобраться в его идиомах - залезть в дебри управления памятью. Даже если в ваших проектах это не нужно, хорошее понимание языковых ограничений и представления объектов в памяти только пойдет вам на пользу. В конце концов, это повысит вашу квалификацию в отладке, поскольку вы будете досконально понимать, как объекты хранятся в памяти.
Во-вторых, в один прекрасный день перед вами может возникнуть задача: организовать серьезное управление памятью по промышленным стандартам. Когда эта беда произойдет, вы будете к ней готовы. И помните, что эти главы не содержат конкретных решений, а лишь показывают, как реализуются на С++ алгоритмы, выкопанные пыли академических изданий. Все описанные приемы пригодятся, но мы лишь мимоходом коснулись этой обширной темы.
В-третьих, представьте себе вечеринку по С++. Вы ждете, когда окружающие придут в хорошее расположение духа, берете мартини и произносите ключевую фразу: «Помню, летом 95-го делали мы один проект на С++, и возникла задача: реализовать схему сборки мусора с уплотнением…»
Развлекайтесь!