c++ - 使用带有 boost::array<char, n> 的 boost::iostreams::array_sink

标签 c++ arrays gcc boost boost-iostreams

示例(转载于 from here 下方)表明,使用 array_sink 流,我可以在 char 数组上获得输出流功能。

#include <boost/iostreams/device/array.hpp>
#include <boost/iostreams/stream.hpp>
#include <iostream>

using namespace boost::iostreams;

int main()
{
    char buffer[16];
    array_sink sink{buffer};
    stream<array_sink> os{sink};
    os << "Boost" << std::flush;
    std::cout.write(buffer, 5);
}

但我需要的是从 boost::array 获取 array_sink 流。 例如

...
using namespace boost::iostreams;

boost::array<char, 16384> headerBuf;

array_sink          sink    {headerBuf};
stream<array_sink>  os      {sink};

os << "somedata";

在 gcc 4.4.7 下编译时,出现错误:

error: no matching function for call to ‘boost::iostreams::basic_array_sink<char>::basic_array_sink(<brace-enclosed initializer list>)’

我猜 gcc 4.4.7 可能不支持初始化器列表,尽管一般来说,是否有另一种方法可以使用 boost::array 初始化 array_sink?

最佳答案

http://www.boost.org/doc/libs/1_44_0/libs/iostreams/doc/classes/array.html#array_sink

使用开始/结束或开始/长度构造器。

array_sink          sink    {headerBuf.begin(), headerBuf.size()};

关于c++ - 使用带有 boost::array<char, n> 的 boost::iostreams::array_sink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36550302/

相关文章:

php - 在 php 中存储这个有序对的更有效方法是什么?

c - 数组中素数的总和

c - 试图找到素数的浮点异常

c++ - GCC 虚拟内存耗尽 : Permission denied

c++ - boost asio echo 服务器示例中的黑客攻击或错误?

c++ - 在 C++ wxDir 中非递归地迭代目录

c++ - 使用 pthread 的简单程序的输出

c++ - 循环内变量的定义

c++ - 如何在编译时测试当前版本的 GCC?

c - 如何指示 gcc 像 g++ 那样警告我有关无效函数指针转换的信息?