Classe local C ++ como functor

Estou tentando usar uma classe local como um functor e obter um erro do compilador usando g ++ (3.4.6

Colocar a classe abaixo Processor) no escopo global resolve o erro, então acho que o erro ocorre por causa da função estruturas / classes locais. Eu preferiria ter as classes dentro da função para maior clareza do código e facilidade de uso. Deseja saber se existe uma solução alternativa para fazer o código abaixo funciona

test.cpp: 24: erro: nenhuma função correspondente à chamada para \ u2018foreachArg (int &, char * &, processSubs (int, char *) :: Processador e) \ u2019

template <class Functor>
void foreachArg(int n, char *args[], Functor& f)
{
    for(int i=0; i<n; ++i)
        f(args[i]);
}

int processSubs(int argc, char *args[])
{
    class Processor
    {
        public:
            void operator()(const char *arg)
            {
            }
    };

    Processor p;
    foreachArg(argc, args, p);
}

int main(int argc, char *argv[])
{
    processSubs(argc, argv);
}

questionAnswers(8)

yourAnswerToTheQuestion