Вы можете использовать объект C ++ для управления состоянием запроса curl и получения данных
class CurlRequest {
public:
CurlRequest() {
//...
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, writefunc);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, this);
}
size_t write(void *ptr, size_t size, size_t nmemb) {
//...
}
private:
CURL *curl;
static size_t writefunc(void *ptr, size_t size, size_t nmemb, void *data) {
CurlRequest* req = static_cast<CurlRequest*>(data);
return req->write(ptr, size, nmemb);
}
};