Boost C++ 库

...世界上最受推崇和设计精良的 C++ 库项目之一。 Herb SutterAndrei Alexandrescu,《C++ 编码规范

buffer(第 30 个/共 42 个重载) - Boost C++ 函数库
PrevUpHomeNext

从连续容器创建新的可修改 buffer。

template<
    typename T>
mutable_buffer buffer(
    T & data,
    std::size_t max_size_in_bytes,
    constraint_t< is_contiguous_iterator< typename T::iterator >::value, defaulted_constraint >  = defaulted_constraint(),
    constraint_t< !is_convertible< T, const_buffer >::value, defaulted_constraint >  = defaulted_constraint(),
    constraint_t< !is_convertible< T, mutable_buffer >::value, defaulted_constraint >  = defaulted_constraint(),
    constraint_t< !is_const< remove_reference_t< typename std::iterator_traits< typename T::iterator >::reference > >::value, defaulted_constraint >  = defaulted_constraint());
返回值

一个等价于 mutable_buffer 的值

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

PrevUpHomeNext