1
我試圖使用一個基於數組設備的流,並希望將流傳遞給std::ostream_iterator
或std::istream_iterator
,但不幸的是,我得到一個gcc 4.3.5的編譯錯誤。與std :: ostream_iterator一起使用boost IOStream
升壓::輸入輸出流文檔指出io::stream
要麼從std::basic_istream
或std::basic_ostream
或二者(std::basic_iostream
)依賴於底層設備類別的。陣列設備有可搜索的類別,所以我希望io :: stream來自std::basic_iostream
,並與std::ostream_iterator
或std::istream_iterator
兼容。但不幸的是,我收到了編譯錯誤。
這裏是代碼片段:
namespace io=boost::io;
typedef unsigned char byte;
typedef io::basic_array<byte> array_device;
typedef io::stream<array_device> array_stream;
byte my_buffer[256]={};
array_stream ios_(my_buffer);
std::istream_iterator<byte> in(ios_);
最後一行導致錯誤,指出:
src/my_file.cpp: In member function 'void my_test_class::ctor::test_method()':
src/my_file.cpp:86: error: no matching function for call to
'std::istream_iterator<unsigned char, char, std::char_traits<char>, int>::istream_iterator(my_test_class::<unnamed>::array_stream&)'
非常感謝!非常感謝您的幫助!我不知何故忽略了這一點! – ovanes