Здравствуйте, abrarov, Вы писали:
A>Это вопрос? В исходниках Boost.Asio (Boost 1.50, /boost/asio/buffer.hpp) я ничего подобного не нашел.
Прошу прощения, это я напутал, когда в дебагере в кишках asio ковырялся. Там в impl/read.hpp:
template <typename AsyncReadStream,
typename CompletionCondition, typename ReadHandler>
class read_op<AsyncReadStream, boost::asio::mutable_buffers_1,
CompletionCondition, ReadHandler>
: detail::base_from_completion_cond<CompletionCondition>
{
void operator()(const boost::system::error_code& ec,
std::size_t bytes_transferred, int start = 0)
{
std::size_t n = 0;
switch (start)
{
case 1:
n = this->check_for_completion(ec, total_transferred_); // вот тут default_max_transfer_size = 65536 вернулся
for (;;)
{
stream_.async_read_some(boost::asio::buffer(
buffer_ + total_transferred_, n), *this); // и вот тут я проморгал operator+
return; default:
total_transferred_ += bytes_transferred;
if ((!ec && bytes_transferred == 0)
|| (n = this->check_for_completion(ec, total_transferred_)) == 0
|| total_transferred_ == boost::asio::buffer_size(buffer_))
break;
}
handler_(ec, static_cast<const std::size_t&>(total_transferred_));
}
}
};