### async_read

Start an asynchronous operation to read a certain amount of data from a stream.

    template<
        typename AsyncReadStream,
        typename MutableBufferSequence,
        typename ReadHandler>
    void async_read(
        AsyncReadStream & s,
        const MutableBufferSequence & buffers,
        ReadHandler handler);

    template<
        typename AsyncReadStream,
        typename MutableBufferSequence,
        typename CompletionCondition,
        typename ReadHandler>
    void async_read(
        AsyncReadStream & s,
        const MutableBufferSequence & buffers,
        CompletionCondition completion_condition,
        ReadHandler handler);

    template<
        typename AsyncReadStream,
        typename Allocator,
        typename ReadHandler>
    void async_read(
        AsyncReadStream & s,
        basic_streambuf< Allocator > & b,
        ReadHandler handler);

    template<
        typename AsyncReadStream,
        typename Allocator,
        typename CompletionCondition,
        typename ReadHandler>
    void async_read(
        AsyncReadStream & s,
        basic_streambuf< Allocator > & b,
        CompletionCondition completion_condition,
        ReadHandler handler);