C ++ clase local como functor

stoy tratando de usar una clase local como functor y obtengo un error del compilador usando g ++ (3.4.6).

Colocando la clase de abajo Processor) en el ámbito global resuelve el error, por lo que supongo que el error se debe a la función de estructuras / clases locales. Preferiría tener las clases dentro de la función para claridad de código y facilidad de uso. Desea saber si hay una solución alternativa para que el código siguiente funcione.

test.cpp: 24: error: no hay función coincidente para la llamada a \ u2018foreachArg (int &, char * &, processSubs (int, char *) :: Procesador &) \ 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);
}

Respuestas a la pregunta(8)

Su respuesta a la pregunta