dears,
in function:
       void async_read(AsyncReadStream & s,const MutableBufferSequence & buffers,CompletionCondition completion_condition,ReadHandler handler);
I am puzzled for the variant: "CompletionCondition completion_condition".
take follow code as example:
boost::asio::async_read(socket_,boost::asio::buffer(...),boost::asio::transfer_at_least(1),boost::bind(...));
Before I think it'll return if read 1 bit, but at fact it return until receive EOF or buffer is full.
So why need this variant? It can return when receive EOF or buffer is full if there is no this varant, just like:
boost::asio::async_read(socket_,boost::asio::buffer(...),boost::bind(...));