Uso de variables fuera de alcance en C ++ 11 expresiones lambda
Estoy jugando con C ++ 11 por diversión. Me pregunto por qué sucede esto:
//...
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();});
La compilación termina con este error:
error: 'requestPacket' has not been declared
Lo que se declara anteriormente en el código. Lo intenté::requestPacke
y tampoco funcionó.
¿Cómo puedo usar una variable de alcance externo dentro de una función lambda?