Ho json :: value object e cerco di ottenere valori in una struct ma ottengo questo errore sulla lista di cattura. Capisco che in questa frase questo bracet [] contiene la lista di cattura ma non riesco a capire come. Come posso restituire un valore nella funzione lambda?una variabile locale della funzione di inclusione non può essere referenziata in un corpo lambda a meno che non sia nella lista di cattura
void JsonDeneme::setValues(json::value obj)
{
weather.coord.lon = obj.at(L"coord").at(L"lon").as_double();
weather.coord.lat= obj.at(L"coord").at(L"lat").as_double();
}
void JsonDeneme::getHttp()
{
//json::value val;
http_client client(U("http://api.openweathermap.org/data/2.5/weather?q=Ankara,TR"));
client.request(methods::GET)
.then([](http_response response) -> pplx::task<json::value>
{
if (response.status_code() == status_codes::OK)
{
printf("Received response status code:%u\n", response.status_code());
return response.extract_json();
}
return pplx::task_from_result(json::value());
})
.then([ ](pplx::task<json::value> previousTask)
{
try
{
json::value v = previousTask.get();
setValues(v);//-----------------------------------------
}
catch (http_exception const & e)
{
wcout << e.what() << endl;
}
})
.wait();
}
Qual è l'errore che stai ottenendo? – SingerOfTheFall
una variabile locale di funzione di inclusione non può essere referenziata in un corpo lambda a meno che non sia nella lista di cattura – user2957741
questo è corretto quando ho aggiunto [questo] ma cerco di capire perché – user2957741