Вместо того, чтобы использовать анонимную функцию, вам придется определить и построить функтор. Вам также придется отбросить ключевое слово auto.
Actor* Scene::GetActor(const char* name)
{
StringID actorID(name);
MyFunctor funct(actorID); // move code from anon function to operator() of MyFunctor
// Replace InputIterator with something appropriate - might use a shortening typedef
InputIterator actor = find_if(m_actors.begin(), m_actors.end(), funct);
return actor != m_actors.end() ? *actor : NULL;
}
Если StringID - ваш собственный класс, вы можете сделать его функтором, определив operator ().