#### buffer (28 of 32 overloads)

Create a new modifiable buffer that represents the given string.

    template<
        typename Elem,
        typename Traits,
        typename Allocator>
    mutable_buffer buffer(
        std::basic_string< Elem, Traits, Allocator > & data,
        std::size_t max_size_in_bytes);

###### Return Value

A `mutable_buffer` value equivalent to:

    mutable_buffer(
        data.size() ? &data[0] : 0,
        min(data.size() * sizeof(Elem), max_size_in_bytes));

###### Remarks

The buffer is invalidated by any non-const operation called on the given string object.