...one of the most highly
regarded and expertly designed C++ library projects in the
world.
— Herb Sutter and Andrei
Alexandrescu, C++
Coding Standards
Create a new non-modifiable buffer from a contiguous container.
template< typename T> const_buffer buffer( T & data, std::size_t max_size_in_bytes, typename constraint< is_contiguous_iterator< typename T::iterator >::value, defaulted_constraint >::type = defaulted_constraint(), typename constraint< !is_convertible< T, const_buffer >::value, defaulted_constraint >::type = defaulted_constraint(), typename constraint< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >::type = defaulted_constraint(), typename constraint< is_const< typename remove_reference< typename std::iterator_traits< typename T::iterator >::reference >::type >::value, defaulted_constraint >::type = defaulted_constraint());
A const_buffer
value equivalent to:
const_buffer( data.size() ? &data[0] : 0, min( data.size() * sizeof(typename T::value_type), max_size_in_bytes));