void do_read() { using boost::asio::buffer; using boost::asio::buffer_copy; s_.resize(13); fc_.emplace(n_); ts_.emplace(ioc_, *fc_, ", world!"); brs_.emplace(*ts_); brs_->buffer().commit(buffer_copy( brs_->buffer().prepare(5), buffer("Hello", 5))); boost::asio::async_read(*brs_, buffer(&s_[0], s_.size()), std::bind( &loop::on_read, shared_from_this(), std::placeholders::_1, std::placeholders::_2)); }