|  | 
        A mutable buffer sequence represents a set of memory
        regions that may be used to receive the output of an operation, such as the
        receive operation of a socket.
      
        A type X meets the MutableBufferSequence requirements if it
        satisfies the requirements of Destructible
        (C++Std [destructible]) and CopyConstructible
        (C++Std [copyconstructible]), as well as the additional requirements listed
        below.
      
        In the table below, x denotes
        a (possibly const) value of type X,
        and u denotes an identifier.
      
Table 24. MutableBufferSequence requirements
| expression | return type | 
                  assertion/note | 
|---|---|---|
| 
                   | 
                  An iterator type meeting the requirements for bidirectional iterators
                  (C++Std [bidirectional.iterators]) whose value type is convertible
                  to  | |
| X u(x); | 
                  post: equal( asio::buffer_sequence_begin(x), asio::buffer_sequence_end(x), asio::buffer_sequence_begin(u), asio::buffer_sequence_end(u), [](const mutable_buffer& b1, const mutable_buffer& b2) { return b1.data() == b2.data() && b1.size() == b2.size(); }) |