Здравствуйте, Videoman, Вы писали:
в азио есть несколько политик по работе с асинхронностью, задаются так называемыми
completion token, которые определяют механизм возврата результата асинхронной функции. В частности есть токен
use_future, для него асинх. операция возвратит фьючер
// передаём токен use_future последним аргументом
std::string line;
std::future<std::size_t> future_read =
boost::asio::async_read_until(socket, boost::asio::dynamic_buffer(line), '\n', boost::asio::use_future);
// get() ждёт результат, подобно await в javascript
const size_t bytes_transferred = future_read.get();
if (bytes_transferred != 0)
{
// do something with line
}