アレイデバイスベースのストリームを使用してストリームをstd::ostream_iterator
またはstd::istream_iterator
に渡そうとしましたが、残念ながらgcc 4.3.5でコンパイルエラーが発生します。std :: ostream_iteratorでboost IOStreamsを使用
ブースト::入出力ストリームのドキュメントでは、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_);
と示すエラーの最後の行の結果:ここで
は、コードスニペットであるあなたがstd::istream_iterator
のための十分なテンプレート引数を供給していない
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