我想从我拥有的原始数据中创建一个只读缓冲区,以便我可以连续多次调用 boost::asio::buffer_copy
而不必担心保持正确的偏移量和长度.
在这种情况下,streambuf 是正确的解决方案吗?如果是,如何从 const char* 原始数据创建streambuf而不复制它?
最佳答案
由于您使用的是 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));
}
关于c++ - 从 const char* 创建一个streambuf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38208850/