l'aide hors de la portée des variables en C++11 les expressions lambda

Je suis en train de jouer avec C++11 pour le plaisir. Je me demandais pourquoi ce qui se passe:

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

Compilation se termine avec cette erreur:

error: 'requestPacket' has not been declared

Qui est déclaré plus tôt dans le code. J'ai essayé ::requestPacke et il n'a pas travaillé trop.

Comment puis-je utiliser une portée externe variable à l'intérieur d'une fonction lambda?

Ils sont à l'intérieur d'une méthode d'une classe. Ce n'est pas un bon titre, je devrais peut-être changer de out of current scope...

OriginalL'auteur sorush-r | 2013-06-04