Пример (приведенный ниже from here) показывает, что, используя поток array_sink, я могу получить функциональность выходного потока в массиве символов.с использованием boost :: iostreams :: array_sink с boost :: array <char, n>
#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);
}
Что мне нужно, так это получить поток array_sink из массива boost ::. , например.
...
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>)’
Я предполагаю, что список инициализатора не может поддерживаться НКУ 4.4.7, хотя в общем-то, есть альтернативный метод инициализации array_sink с boost :: array?