2016-04-11 2 views
1

Пример (приведенный ниже 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?

ответ

Смежные вопросы