как конвертировать Concurrency :: streams :: istream в std :: istream в c ++ - PullRequest
0 голосов
/ 31 марта 2020

Я кодировал с CppRESTsdk и получил Concurrency::streams::istream из тела ответа, как следующий код:

web::http::http_response localVarResponse;
auto concurrencyStream = localVarResponse.body();

Я хочу преобразовать поток в std::istream и использовать его внутри std::shared_ptr, чтобы я мог передать его другим классам, например так:

std::istream stdStream = concurrencyStream;
auto istream_ptr = std::make_shared<std::istream>(stdStream);   

Но я получил ошибки:

 E0312  no suitable user-defined conversion from 
    "Concurrency::streams::istream" to "std::istream" exists

Как я могу преобразовать в std::istream?

РЕДАКТИРОВАТЬ : косвенно через std :: streambuf это работает.

std::string str = localVarResponse.content_ready().get().extract_utf8string(true).get();
std::istringstream SStream(str);
std::istream inputStream(SStream.rdbuf());
...