Как конвертировать std :: array в boost :: asio :: buffer? - PullRequest
0 голосов
/ 31 января 2019

Я пытаюсь преобразовать std::array в boost::asio::buffer, чтобы использовать его для async_read_some, но я всегда получаю некоторые ошибки:

Вот мой пример кода:

array<char, 16> data;
tcpSocket.async_read_some(buffer(data), [data](const boost::system::error_code& ec, size_t ammountOfBytes) {
if (ec) {
    cout << "Read failed with message: " << ec.message() << endl;
}
else {
    cout.write(data.data(), ammountOfBytes);
}
});

Вот ошибки, которые я получаю:

Error   C2661   'boost::asio::detail::buffer_sequence_adapter_base::init_native_buffer': no overloaded function takes 1 arguments
Error   C2440   '<function-style-cast>': cannot convert from 'const boost::asio::const_buffers_1' to 'boost::asio::mutable_buffer'

Мне странно, что все примеры, которые я вижу в Интернете, используют один и тот же синтаксис.

1 Ответ

0 голосов
/ 31 января 2019

Вы можете использовать mutable_buffer

boost::asio::mutable_buffer buff( arr.data(), arr.size() );
...