#### buffer (36 of 42 overloads)

Create a new modifiable buffer from a span.

    template<
        template< typename, std::size_t > class Span,
        typename T,
        std::size_t Extent>
    mutable_buffer buffer(
        const Span< T, Extent > & span,
        std::size_t max_size_in_bytes,
        constraint_t< !is_const< T >::value, defaulted_constraint >  = defaulted_constraint(),
        constraint_t< sizeof(T)==1, defaulted_constraint >  = defaulted_constraint(),
        constraint_t< is_same< decltype(span.subspan(0, 0)), Span< T, static_cast< std::size_t >(-1)> >::value, defaulted_constraint >  = defaulted_constraint());

###### Return Value

A `mutable_buffer` value equivalent to:

    mutable_buffer b(span);
    mutable_buffer(
        b.data(),
        min(b.size(), max_size_in_bytes));