Sto giocando con C++ 11 per divertimento. Mi chiedo perché questo accade:utilizzando le variabili fuori ambito in espressioni lambda C++ 11
//...
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();});
compilazione termina con questo errore:
error: 'requestPacket' has not been declared
che è dichiarato in precedenza nel codice. Ho provato ::requestPacke
e non ha funzionato troppo.
Come è possibile utilizzare una variabile di ambito esterna all'interno di una funzione lambda?
Sono in parte un metodo di una classe. Non è un buon titolo, forse dovrei cambiarlo in "fuori dal campo di applicazione" ... –