Как я могу преобразовать повышение :: ответ зверяна ответ? - PullRequest
0 голосов
/ 31 октября 2019

Мне нужно конвертировать boost::beast::http::response<boost::beast::http::buffer_body> в boost::beast::http::response<boost::beast::http::string_body>.

Какой элегантный и эффективный способ сделать это с использованием API зверя?

PS

Я думаю, что сериализацияи разбор не так эффективен, и, возможно, есть лучший способ. Но если это решение, так как я новичок в звере, я также был бы рад увидеть элегантный пример кода для этого.

Спасибо, Дэвид.

1 Ответ

0 голосов
/ 31 октября 2019

ОК, мне удалось это сделать

boost::beast::http::response<boost::beast::http::string_body> string_response;
boost::beast::http::response<boost::beast::http::buffer_body> buffer_response;
std::string response_body

// Do stuff to read the response and fill the response_body using the buffer

string_response.base() = buffer_response.base();
string_response.body() = response_body;

Оказалось, что в заголовке есть конструктор копирования, поэтому все, что мне нужно было сделать, это назначить тело строки ..

Итакесли конструктор копирования эффективен (скорее всего, так и есть), это решение также эффективно.

...