我想从原始数据中创建一个只读缓冲区,以便我可以连续多次调用boost::asio::buffer_copy
,而不必担心保持正确的偏移量和长度。
在这种情况下,streambuf是正确的解决方案吗?如果是,如何在不复制的情况下从const char *原始数据创建streambuf?
答案 0 :(得分:2)
由于你正在使用Boost,你可以使用Boost.Iostreams。
#include <boost/iostreams/device/array.hpp>
#include <boost/iostreams/stream_buffer.hpp>
int main()
{
namespace bio = boost::iostreams;
const char source[] = "hello world";
bio::stream_buffer<bio::array_source> stream_buffer(source, sizeof(source));
}