#### buffer (38 of 42 overloads)

Create a new non-modifiable buffer from a span.

    template<
        template< typename, std::size_t > class Span,
        typename T,
        std::size_t Extent>
    const_buffer buffer(
        const Span< const T, Extent > & span,
        std::size_t max_size_in_bytes,
        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 `const_buffer` value equivalent to:

    const_buffer b1(b);
    const_buffer(
        b1.data(),
        min(b1.size(), max_size_in_bytes));