c++ - 从 const char* 创建一个streambuf?

标签 c++ boost boost-asio

我想从我拥有的原始数据中创建一个只读缓冲区,以便我可以连续多次调用 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/

相关文章:

c# - 从 WinService 监视剪贴板

c++ - boost::program_options :迭代并打印所有选项

c++ - 如何启动一个运行成员函数的 boost::thread?

c++ - C++中的临时变量和性能

android - Superpowered API - SuperpoweredDecoder::decode 不为文件末尾返回 0

c++ - 找到超过阈值的最小子集总和的线性算法

c++ - 是否可以在另一个语法定义中重用 boost::spirit::qi 语法?

c++ - boost ASIO 套接字 io_service.run 阻塞

c++ - io_service::run() 的专用线程

c++ - boost 异步 tcp 客户端