stlное 29.03.06 22:54 // оригинал
Жутко раздражает, что в stl нет встроенного варианта очистки контейнеров с принудительным вызовом delete для каждого элемента, из-за чего вечно приходится придумывать какие-то подпорки (да, я в курсе про boost::shared_ptr, который можно использовать в контейнерах, но пока не заставил себя на него перейти).
Первый вариант моих функций ClearList и ClearMap использовал честный проход итератором по циклу, что несколько раздражало, второй был сделан через for_each и пару классов-функционалов (привет примеру из Мейерсовского Effective STL), что все равно оставляло некую неудовлетворенность громоздкостью и наличием двух классов с чуть разным интерфейсом, нужных только для удаления поступающего на вход объекта.
Ну а поскольку в последнее время все чаще использую boost::bind, последний вариант сделал через нее, с чувством глубокого удовлетворения выкинув дублирование функционалов. Но, честно говоря, хоть я и охотно допускаю, что существуют люди, способные спокойно сходу писать/читать подобный код, для меня это уже совсем другой язык, мощность которого я вполне осознаю, но использование которого дается с баальшим скрипом (а это ведь еще самые верхи, без использования boost::function, boost::lambda или, упаси господь, boost::mpl).