Почему следующий пример неправомерен?
void f()
{
class functor
{
public:
void operator()(int i) {std::cout << i << std::endl;}
};
functor func;
std::vector<int> vec(10);
std::for_each(vec.begin(), vec.end(), func);
}