Tan*_*ury 13
没有包装,但你可以在满足任何容器提供多个缓冲区MutableBufferSequence和ConstBufferSequence概念要求,如std::vector,std::list或boost::array.大多数函数都是根据BufferSequence概念实现的,并boost::asio::buffer提供了一种将单个缓冲区包装成满足要求的类型的通用方法.本文档简要提及了它.
以下是Boost.Asio序列化示例的片段:
// Write the serialized data to the socket. We use "gather-write" to send
// both the header and the data in a single write operation.
std::vector<boost::asio::const_buffer> buffers;
buffers.push_back(boost::asio::buffer(outbound_header_));
buffers.push_back(boost::asio::buffer(outbound_data_));
boost::asio::async_write(socket_, buffers, handler);
Run Code Online (Sandbox Code Playgroud)
请注意,buffers集合不需要保留在范围内,因为文档声明Boost.Asio可以根据需要创建副本.但是,底层内存,outbound_header_并且outbound_data_需要在调用处理程序之前保持有效.