Gram z C++ 11 dla zabawy. Zastanawiam się, dlaczego tak się dzieje:używanie zmiennych out of scope w C++ 11 wyrażeń lambda
//...
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();});
Kompilacja kończy się z tego błędu:
error: 'requestPacket' has not been declared
która została zgłoszona wcześniej w kodzie. Próbowałem ::requestPacke
i to też nie działa.
Jak mogę użyć zewnętrznej zmiennej zakresu wewnątrz funkcji lambda?
Są w strona metoda klasy. To nie jest dobry tytuł, może powinienem go zmienić na 'out of current scope' ... –