template<class PROCESSOR_TYPE>
void processInput(std::string input_category, InputObj i)
{
(PROCESSOR_TYPE*)
(my_processors.find(input_category)->second))->operator()(i);
}
// ...
mgr.processInput<FooProcessor>("foo", x1);
mgr.processInput<BarProcessor>("bar", x2);