usando variáveis ​​fora do escopo em expressões lambda C ++ 11

Estou brincando com o C ++ 11 por diversão. Eu estou querendo saber porque isso acontece:

//...
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();});

A compilação termina com este erro:

error: 'requestPacket' has not been declared

Que é declarado anteriormente no código. eu tentei::requestPacke&nbsp;e não funcionou também.

Como posso usar uma variável de escopo externo dentro de uma função lambda?