У меня ругается. gcc 3.4.2. Зато
Код:

for_each(flist.begin(), flist.end(), ptr_fun(operator delete));
вполне работает. Честно говоря, не знаю почему, просто где-то давно вычитал.
А ещё бы я забил на std::auto_ptr и использовал более умный указатель и не мучался. Что-нибудь из boost (shared_ptr?) по идее можно выдрать, или свой на коленке сваять.