从const char *创建streambuf?

时间:2016-07-05 16:59:46

标签: c++ boost boost-asio

我想从原始数据中创建一个只读缓冲区,以便我可以连续多次调用boost::asio::buffer_copy,而不必担心保持正确的偏移量和长度。

在这种情况下,streambuf是正确的解决方案吗?如果是,如何在不复制的情况下从const char *原始数据创建streambuf?

1 个答案:

答案 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));
}
相关问题