użycie zmiennych poza zakresem w C ++ 11 wyrażeń lambda

Gram z C ++ 11 dla zabawy. Zastanawiam się, dlaczego tak się dzieje:

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

Kompilacja kończy się z tym błędem:

error: 'requestPacket' has not been declared

Który jest zadeklarowany wcześniej w kodzie. próbowałem::requestPacke i to też nie działa.

Jak mogę użyć zewnętrznej zmiennej zasięgu wewnątrz funkcji lambda?

questionAnswers(1)

yourAnswerToTheQuestion