2

何が起こっている?

#include <iostream>
#include <iterator>
#include <sstream>

int main() {
    std::basic_stringbuf<unsigned char> buf;
    std::basic_istream<unsigned char> stream(&buf);
    // the next line throws std::bad_cast on g++ 4.4
    std::istream_iterator<unsigned char, unsigned char> it(stream);
}

stream.write(some_array, sizeof(some_array)イテレータを作成する前に試しましたが、役に立ちませんでした。

ありがとう。

4

2 に答える 2

2

歩哨オブジェクトのコンストラクターからスローされ、ストリーム上のctypeファセットをチェックします(空白をスキップできるようにするために必要です)。これは、符号なし文字に対して定義されていないため、たまたまNULLになります。

そのストリームで空白を処理する必要がありますか?そうでない場合は、に変更します

std::istreambuf_iterator<unsigned char> it(stream);
于 2010-08-31T14:48:42.193 に答える
0

すべきではありません:

std::istream_iterator<unsigned char> it(stream);
于 2010-08-31T14:40:49.597 に答える