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?