Uso de variables fuera de alcance en C ++ 11 expresiones lambda

Estoy jugando con C ++ 11 por diversión. Me pregunto por qué sucede esto:

//...
std::vector<P_EndPoint> agents;
P_CommunicationProtocol requestPacket;
//...
bool repeated = std::any_of(agents.begin(), agents.end(),
                    [](P_EndPoint i)->bool 
                    {return requestPacket.identity().id()==i.id();});

La compilación termina con este error:

error: 'requestPacket' has not been declared

Lo que se declara anteriormente en el código. Lo intenté::requestPacke&nbsp;y tampoco funcionó.

¿Cómo puedo usar una variable de alcance externo dentro de una función lambda?