в следующем коде я создаю карту,
затем добавляю к ней несколько экземпляров класса httprequest,
затем я вызываю boost asio spawn, используя функцию-член класса httprequest,
я спрашивал об этом раньше и сказал, что это дубликат,
поэтому я прочитал сообщение и немного покопался, и нашел следующее:
я должен использовать boost::bind для преобразования функции-члена и ее аргументов в объект с одной функцией.
и внутри boost bind у меня есть чтобы добавить адрес экземпляра, на котором работает метод, и адрес метода "не получить, если адрес метода из определения класса или из используемого экземпляра,
затем добавить аргументы. Моя карта имеет httprequests, представленные общими указателями.
когда я пишу это и компилирую, это дает мне много ошибок, связанных с привязкой.
утверждается, что проблема находится в файле привязки, который представляет мой код, но не говорит, в какой части возникла проблема.
вот код:
std::map<std::string, boost::shared_ptr<HTTPRequest>> requests_variables;
std::map<std::string, boost::shared_ptr<HTTPResponse>> tasks;
for (int hour = 0;hour < 24;hour++)
{
std::stringstream ss_hour;
ss_hour << std::setw(2) << std::setfill('0') << hour;
std::string url_hour{ ss_hour.str() };
std::stringstream().swap(ss_hour); // swap m with a default constructed stringstream
URL = URL + url_hour +"h_ticks.bi5";
std::string request_name = "request_" + std::to_string(hour);
requests_variables[request_name] = client.create_request(hour, URL);
boost::asio::spawn(client.get_service_reference(), boost::bind(&(*requests_variables[request_name]),&(*requests_variables[request_name]).execute, boost::placeholders::_1, tasks, request_name, requests_variables));
я много раз пытался манипулировать им, чтобы он скомпилировался, но тщетно.
что-то не так с привязкой, но я не могу до нее добраться.
заранее спасибо..