Verwendung von Out-of-Scope-Variablen in C ++ 11-Lambda-Ausdrücken

Ich spiele zum Spaß mit C ++ 11. Ich frage mich, warum das passiert:

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

Die Kompilierung wird mit folgendem Fehler abgebrochen:

error: 'requestPacket' has not been declared

Welches ist früher im Code deklariert. Ich habe es versucht::requestPacke und es hat auch nicht funktioniert.

Wie kann ich eine externe Bereichsvariable in einer Lambda-Funktion verwenden?

Antworten auf die Frage(1)

Ihre Antwort auf die Frage