[Из песочницы] Смарт-поинтеры и RAII на службе программиста

Исторически так сложилось, что руководство желает, чтобы задача была выполнена быстро. Для этого программисты сохраняют красоту и чистоту кода. Этот пост появился как напоминание о редкоиспользуемых нововведениях в C++11 — смарт-поинтерах, позволяющих указывать функтор для освобождения ресурсов. Для примера возьмем файловый поток FILE из stdio.h, который любят за простоту и скорость, попробуем добавить ему красоту и базовую гарантию при исключениях: unique_ptr my_file (fopen («test.txt», «w»), &fclose); if (my_file) fwrite («test», 4, 1, my_file.get ()); В результате код зависит только STL и требует небольшой модификации обращений к файлу, пишется быстро, выглядит современно. Вот так получился RAII в чистом виде.Как это работает?

© Habrahabr.ru